Changeset 2235723
- Timestamp:
- 01/30/2020 10:34:58 AM (6 years ago)
- Location:
- tansa
- Files:
-
- 2 added
- 15 edited
-
assets/screenshot-2.png (modified) (previous)
-
assets/screenshot-3.png (modified) (previous)
-
assets/screenshot-4.png (modified) (previous)
-
assets/screenshot-5.png (modified) (previous)
-
assets/screenshot-6.png (modified) (previous)
-
assets/screenshot-7.png (modified) (previous)
-
assets/screenshot-8.png (modified) (previous)
-
assets/screenshot-9.png (added)
-
trunk/dist/javascriptapp/ClientTexts.xml (modified) (15 diffs)
-
trunk/dist/javascriptapp/css/connection.css (modified) (1 diff)
-
trunk/dist/javascriptapp/html/connection.html (modified) (1 diff)
-
trunk/dist/javascriptapp/init.js (modified) (7 diffs)
-
trunk/dist/javascriptapp/js/common.js (modified) (2 diffs)
-
trunk/dist/javascriptapp/js/connectionDialog.js (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/settings.php (added)
-
trunk/tansa.php (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tansa/trunk/dist/javascriptapp/ClientTexts.xml
r2054562 r2235723 243 243 <userSetOk text="Brugernavn angivet."/> 244 244 <userSetNotFound text="Ukendt brugernavn!"/> 245 <getLicenseKey text="Get License Key"/> 246 <enterEmailAddress text="Enter your email address" /> 247 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 248 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 245 249 </connectionDialog> 246 250 <statuses> … … 588 592 <userSetOk text="Benutzername eingegeben."/> 589 593 <userSetNotFound text="Unbekannter Benutzername!"/> 594 <getLicenseKey text="Get License Key"/> 595 <enterEmailAddress text="Enter your email address" /> 596 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 597 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 590 598 </connectionDialog> 591 599 <statuses> … … 933 941 <userSetOk text="Username set."/> 934 942 <userSetNotFound text="Unknown username!"/> 943 <getLicenseKey text="Get License Key"/> 944 <enterEmailAddress text="Enter your email address" /> 945 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 946 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 935 947 </connectionDialog> 936 948 <statuses> … … 1278 1290 <userSetOk text="Username set."/> 1279 1291 <userSetNotFound text="Unknown username!"/> 1292 <getLicenseKey text="Get License Key"/> 1293 <enterEmailAddress text="Enter your email address" /> 1294 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 1295 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 1280 1296 </connectionDialog> 1281 1297 <statuses> … … 1623 1639 <userSetOk text="Username set."/> 1624 1640 <userSetNotFound text="Unknown username!"/> 1641 <getLicenseKey text="Get License Key"/> 1642 <enterEmailAddress text="Enter your email address" /> 1643 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 1644 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 1625 1645 </connectionDialog> 1626 1646 <statuses> … … 1968 1988 <userSetOk text="Username set."/> 1969 1989 <userSetNotFound text="Unknown username!"/> 1990 <getLicenseKey text="Get License Key"/> 1991 <enterEmailAddress text="Enter your email address" /> 1992 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 1993 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 1970 1994 </connectionDialog> 1971 1995 <statuses> … … 2313 2337 <userSetOk text="Nombre de usuario designado."/> 2314 2338 <userSetNotFound text="¡Nombre de usuario desconocido!"/> 2339 <getLicenseKey text="Get License Key"/> 2340 <enterEmailAddress text="Enter your email address" /> 2341 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 2342 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 2315 2343 </connectionDialog> 2316 2344 <statuses> … … 2658 2686 <userSetOk text="Nom d’utilisateur saisi."/> 2659 2687 <userSetNotFound text="Nom d’utilisateur inconnu!"/> 2688 <getLicenseKey text="Get License Key"/> 2689 <enterEmailAddress text="Enter your email address" /> 2690 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 2691 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 2660 2692 </connectionDialog> 2661 2693 <statuses> … … 3003 3035 <userSetOk text="Nom d’utilisateur saisi."/> 3004 3036 <userSetNotFound text="Nom d’utilisateur inconnu!"/> 3037 <getLicenseKey text="Get License Key"/> 3038 <enterEmailAddress text="Enter your email address" /> 3039 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 3040 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 3005 3041 </connectionDialog> 3006 3042 <statuses> … … 3348 3384 <userSetOk text="Brukernavn angitt."/> 3349 3385 <userSetNotFound text="Ukjent brukernavn!"/> 3386 <getLicenseKey text="Get License Key"/> 3387 <enterEmailAddress text="Enter your email address" /> 3388 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 3389 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 3350 3390 </connectionDialog> 3351 3391 <statuses> … … 3693 3733 <userSetOk text="Brukernavn angitt."/> 3694 3734 <userSetNotFound text="Ukjent brukernavn!"/> 3735 <getLicenseKey text="Get License Key"/> 3736 <enterEmailAddress text="Enter your email address" /> 3737 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 3738 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 3695 3739 </connectionDialog> 3696 3740 <statuses> … … 4038 4082 <userSetOk text="Användarnamnn angett."/> 4039 4083 <userSetNotFound text="Okänd användarnamn!"/> 4084 <getLicenseKey text="Get License Key"/> 4085 <enterEmailAddress text="Enter your email address" /> 4086 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 4087 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 4040 4088 </connectionDialog> 4041 4089 <statuses> … … 4383 4431 <userSetOk text="Nome do utilizador definido."/> 4384 4432 <userSetNotFound text="Nome de utilizador desconhecido!"/> 4433 <getLicenseKey text="Get License Key"/> 4434 <enterEmailAddress text="Enter your email address" /> 4435 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 4436 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 4385 4437 </connectionDialog> 4386 4438 <statuses> … … 4732 4784 <userSetOk text="Username set."/> 4733 4785 <userSetNotFound text="Unknown username!"/> 4786 <getLicenseKey text="Get License Key"/> 4787 <enterEmailAddress text="Enter your email address" /> 4788 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 4789 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 4734 4790 </connectionDialog> 4735 4791 <statuses> … … 5096 5152 <userSetOk text="Username set."/> 5097 5153 <userSetNotFound text="Unknown username!"/> 5154 <getLicenseKey text="Get License Key"/> 5155 <enterEmailAddress text="Enter your email address" /> 5156 <emailNotRegistered text="Email not registered with %SHORTSYSTEMNAME%" /> 5157 <serverSetAndLicenseKeySend text="Server address is set and license key has been sent to your email address." /> 5098 5158 </connectionDialog> 5099 5159 <statuses> -
tansa/trunk/dist/javascriptapp/css/connection.css
r2054562 r2235723 84 84 position: relative; 85 85 background-size: 17px 19px; 86 top: -4px;87 left: 10px;86 top: 4px; 87 left: 5px; 88 88 min-width: 5% !important; 89 89 } -
tansa/trunk/dist/javascriptapp/html/connection.html
r2054562 r2235723 1 1 <!DOCTYPE HTML> 2 2 <html> 3 <head> 4 <title localized="connectionDialog title"></title> 5 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery-3.3.1.min.js"></script> 6 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery-migrate-3.0.1.min.js"></script> 7 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery-ui.min.js"></script> 8 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery.blockUI.js"></script> 9 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery.validate.min.js"></script> 10 <link rel="stylesheet" href="../css/styles.css" type="text/css"> 11 <link rel="stylesheet" href="../css/connection.css" type="text/css"> 12 <link rel="stylesheet" href="../css/jquery-ui.css" type="text/css"> 13 </head> 14 <body class="tansa"> 15 <div id="mainContainer"> 16 <div id="alertDialog" style="display: none" systemNameTitle="longSystemName"> 17 <span id="alertMsg"></span> 18 <div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix button-wrapper"> 19 <span class="primaryBtn"> 20 <button type="button" id="alertDialogOkBtn" localized="messageBox ok">OK</button> 21 </span> 22 </div> 23 </div> 24 <div id="confirmDialog" style="display: none" systemNameTitle="longSystemName"> 25 <span id="confirmMsg"></span> 26 <div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix button-wrapper"> 27 <span class="secondaryBtn mac-only"> 28 <button type="button" id="confirmDialogCancelBtn" localized="messageBox cancel">Cancel</button> 29 </span> 30 <span class="primaryBtn "> 31 <button type="button" id="confirmDialogOkBtn" localized="messageBox ok">OK</button> 32 </span> 33 </div> 34 </div> 35 36 <fieldset> 37 <form id="serverAddressForm" name="serverAddressForm" action="#" autocomplete="off"> 38 <table cellspacing="1" cellpadding="2px"> 39 <tr> 40 <td class="headerName" localized="connectionDialog server" colspan="2"></td> 41 </tr> 42 <tr> 43 <td class="header" id="setAddressLabel" localized="connectionDialog setAddress" colspan="2"></td> 44 </tr> 45 <tr> 46 <td colspan="2"> 47 <input type="text" id="tansaServerURL" name="tansaServerURL"/> 48 <input type="button" id="deleteServerURLBtn" name="deleteServerURLBtn" localizedTitle="connectionDialog remove" /> 49 </td> 50 </tr> 51 <tr> 52 <td> 53 <label id="tansaServerURL-error" class="error" for="tansaServerURL"></label> 54 </td> 55 </tr> 56 <tr id="buttonstd"> 57 <td> 58 <span class="primaryBtn"> 59 <input type="button" id="connectBtn" name="connectBtn" localized="connectionDialog connect"/> 60 </span> 61 </td> 62 <td> 63 <span class="primaryBtn"> 64 <input type="button" id="reConnectBtn" name="reConnectBtn" localized="connectionDialog reconnect"/> 65 </span> 66 </td> 67 </tr> 68 </table> 69 </form> 70 </fieldset> 71 <br /> 72 <fieldset id="usernameContainer"> 73 <form id="usernameForm" name="usernameForm" action="#" autocomplete="off"> 74 <table cellspacing="1" cellpadding="2px"> 75 <tr> 76 <td class="headerName" localized="connectionDialog usernameAndLicense"></td> 77 </tr> 78 <tr> 79 <td class="header" id="setUsernameLabel" localized="connectionDialog setUsername"></td> 80 </tr> 81 <tr> 82 <td> 83 <input type="text" id="tansaUserName" name="tansaUserName"/> 84 </td> 85 </tr> 86 <tr> 87 <td> 88 <label id="tansaUserName-error" class="error" for="tansaUserName"></label> 89 </td> 90 </tr> 91 <tr> 92 <td class="header" id="setLicenseLabel" localized="connectionDialog setLicenseKey"></td> 93 </tr> 94 <tr> 95 <td> 96 <input type="text" id="licenseKey" name="LicenseKey"/> 97 </td> 98 </tr> 99 <tr> 100 <td id="buttonstd"> 101 <span class="primaryBtn"> 102 <input type="button" id="setUserNameBtn" name="setUserNameBtn" localized="connectionDialog set"/> 103 </span> 104 </td> 105 </tr> 106 </table> 107 </form> 108 </fieldset> 109 <br /> 110 <div> 111 <table cellspacing="1" cellpadding="2px"> 112 <tr id = "closeButtonDiv" > 113 <td></td> 114 <td> 115 <span class="secondaryBtn"> 116 <input type="button" id="closeBtn" name="closeBtn" localized="connectionDialog close"/> 117 </span> 118 </td> 119 </tr> 120 </table> 121 </div> 122 </div> 123 </body> 124 <script type="text/javascript" charset="utf-8" src="../js/common.js"></script> 125 <script type="text/javascript" charset="utf-8" src="../js/connectionDialog.js"></script> 3 4 <head> 5 <title localized="connectionDialog title"></title> 6 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery-3.3.1.min.js"></script> 7 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery-migrate-3.0.1.min.js"></script> 8 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery-ui.min.js"></script> 9 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery.validate.min.js"></script> 10 <script type="text/javascript" charset="utf-8" src="../js/jquery/jquery.blockUI.js"></script> 11 <script type="text/javascript" charset="utf-8" src="../js/common.js"></script> 12 <script type="text/javascript" charset="utf-8" src="../js/connectionDialog.js"></script> 13 <link rel="stylesheet" href="../css/styles.css" type="text/css"> 14 <link rel="stylesheet" href="../css/connection.css" type="text/css"> 15 <link rel="stylesheet" href="../css/jquery-ui.css" type="text/css"> 16 </head> 17 18 <body class="tansa"> 19 <div id="mainContainer"> 20 <div id="alertDialog" style="display: none" systemNameTitle="longSystemName"> 21 <span id="alertMsg"></span> 22 <div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix button-wrapper"> 23 <span class="primaryBtn"> 24 <button type="button" id="alertDialogOkBtn" localized="messageBox ok">OK</button> 25 </span> 26 </div> 27 </div> 28 <div id="confirmDialog" style="display: none" systemNameTitle="longSystemName"> 29 <span id="confirmMsg"></span> 30 <div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix button-wrapper"> 31 <span class="secondaryBtn mac-only"> 32 <button type="button" id="confirmDialogCancelBtn" localized="messageBox cancel">Cancel</button> 33 </span> 34 <span class="primaryBtn "> 35 <button type="button" id="confirmDialogOkBtn" localized="messageBox ok">OK</button> 36 </span> 37 <span class="secondaryBtn windows-only"> 38 <button type="button" id="confirmDialogCancelBtn" localized="messageBox cancel">Cancel</button> 39 </span> 40 </div> 41 </div> 42 <div id="getLicenseKeyDialog" style="display: none" systemNameTitle="longSystemName"> 43 <fieldset> 44 <form id="getLicenseKeyForm" name="getLicenseKeyForm" action="#" autocomplete="off"> 45 <table cellspacing="1" cellpadding="2px"> 46 <tr> 47 <td class="header" id="enterEmailAddress" localized="connectionDialog enterEmailAddress"></td> 48 </tr> 49 <tr> 50 <td> 51 <input type="text" id="emailId" name="emailId" /> 52 </td> 53 </tr> 54 <tr> 55 <td> 56 <label id="getLicenseKeyDialog-error" class="error" for="emailId"></label> 57 </td> 58 </tr> 59 <tr id="buttonstd"> 60 <td> 61 <span class="secondaryBtn mac-only"> 62 <input type="button" id="licenseKeyDialogCancelBtn" name="licenseKeyDialogCancelBtn" 63 localized="messageBox cancel" /> 64 </span> 65 </td> 66 <td > 67 <span class="primaryBtn "> 68 <input type="button" id="licenseKeyDialogOkBtn" name="licenseKeyDialogOkBtn" 69 localized="messageBox ok" /> 70 </span> 71 </td> 72 <td> 73 <span class="secondaryBtn windows-only"> 74 <input type="button" id="licenseKeyDialogCancelBtn" name="licenseKeyDialogCancelBtn" 75 localized="messageBox cancel" /> 76 </span> 77 </td> 78 </tr> 79 </table> 80 </form> 81 </fieldset> 82 </div> 83 <fieldset> 84 <form id="serverAddressForm" name="serverAddressForm" action="#" autocomplete="off"> 85 <table cellspacing="1" cellpadding="2px"> 86 <tr> 87 <td class="headerName" localized="connectionDialog server" colspan="2"></td> 88 </tr> 89 <tr> 90 <td class="header" id="setAddressLabel" localized="connectionDialog setAddress" colspan="2"> 91 </td> 92 </tr> 93 <tr> 94 <td colspan="2"> 95 <input type="text" id="tansaServerURL" name="tansaServerURL" /> 96 <input type="button" id="deleteServerURLBtn" name="deleteServerURLBtn" 97 localizedTitle="connectionDialog remove" /> 98 </td> 99 </tr> 100 <tr> 101 <td> 102 <label id="tansaServerURL-error" class="error" for="tansaServerURL"></label> 103 </td> 104 </tr> 105 <tr id="buttonstd"> 106 <td> 107 <span class="primaryBtn"> 108 <input type="button" id="connectBtn" name="connectBtn" 109 localized="connectionDialog connect" /> 110 </span> 111 </td> 112 <td> 113 <span class="primaryBtn"> 114 <input type="button" id="reConnectBtn" name="reConnectBtn" 115 localized="connectionDialog reconnect" /> 116 </span> 117 </td> 118 </tr> 119 </table> 120 </form> 121 </fieldset> 122 <br /> 123 <fieldset id="usernameContainer"> 124 <form id="usernameForm" name="usernameForm" action="#" autocomplete="off"> 125 <table cellspacing="1" cellpadding="2px"> 126 <tr> 127 <td class="headerName" localized="connectionDialog usernameAndLicense"></td> 128 </tr> 129 <tr> 130 <td class="header" id="setUsernameLabel" localized="connectionDialog setUsername"></td> 131 </tr> 132 <tr> 133 <td> 134 <input type="text" id="tansaUserName" name="tansaUserName" /> 135 </td> 136 </tr> 137 <tr> 138 <td> 139 <label id="tansaUserName-error" class="error" for="tansaUserName"></label> 140 </td> 141 </tr> 142 <tr> 143 <td class="header" id="setLicenseLabel" localized="connectionDialog setLicenseKey"></td> 144 </tr> 145 <tr> 146 <td> 147 <input type="text" id="licenseKey" name="LicenseKey" /> 148 </td> 149 </tr> 150 <tr id="buttonstd"> 151 <td> 152 <span id="getLicenseKeyBtnContainer" class="primaryBtn" style="display: none"> 153 <input type="button" id="getLicenseKeyBtn" name="getLicenseKeyBtn" 154 localized="connectionDialog getLicenseKey" /> 155 </span> 156 </td> 157 <td> 158 <span class="primaryBtn"> 159 <input type="button" id="setUserNameBtn" name="setUserNameBtn" 160 localized="connectionDialog set" /> 161 </span> 162 </td> 163 </tr> 164 </table> 165 </form> 166 </fieldset> 167 <br /> 168 <div> 169 <table cellspacing="1" cellpadding="2px"> 170 <tr id="closeButtonDiv"> 171 <td></td> 172 <td> 173 <span class="secondaryBtn"> 174 <input type="button" id="closeBtn" name="closeBtn" localized="connectionDialog close" /> 175 </span> 176 </td> 177 </tr> 178 </table> 179 </div> 180 </div> 181 </body> 182 126 183 </html> -
tansa/trunk/dist/javascriptapp/init.js
r2054562 r2235723 1 var TANSA_LOCAL_STORAGE_DATA_KEY_WP = "tansa_local_storage_data_key"; 2 var TANSA_USER_GUID_DATA_KEY_WP = "userGuid"; 3 var TANSA_CLIENT_WEB_APP_NAME = 'tansaclient'; 4 var DEFAULT_ACTIVE_SERVER_NAME = "tansa"; 5 var DEFAULT_CSUM_SERVER_URL = "saas.tansa.com"; 6 var TANSA_WEB_CLIENT_BASE_URL_PROTOCOL = "https"; 7 var TANSA_EXT_NAME = 'tansa-wordpress'; 1 8 2 9 window.tansa = {}; 3 10 window.tansa.settings = {}; 4 const TANSA_LOCAL_STORAGE_DATA_KEY_WP = "tansa_local_storage_data_key"; 5 const TANSA_USER_GUID_DATA_KEY_WP = "userGuid"; 6 var TANSA_CLIENT_WEB_APP_NAME = 'tansaclient'; 7 var TANSA_CLIENT_DEFAULT_URL = 'https://tansa'; 8 var TANSA_EXT_NAME = 'tansa-wordpress'; 11 window.tansaExtSettings = {}; 9 12 10 13 tansa.setLocalStorageData = function(data) { … … 27 30 28 31 tansa.initLocalStorageData = function (){ 29 var localStorageDataChanged = false; 30 window.localStorageData = tansa.getLocalStorageData(); 31 if(!window.localStorageData.serverURLs){ 32 window.localStorageData.serverURLs = []; 33 localStorageDataChanged = true; 34 } 32 var isExtSettingsChanged = false; 33 34 tansaExtSettings = tansa.getLocalStorageData(); 35 if (!tansaExtSettings.serverURLs) 36 tansaExtSettings.serverURLs = []; 37 38 // to convert old extension settings into new format 39 if (tansaExtSettings.serverURLs.length == 0 && typeof tansaExtSettings.serverAddressXML === "string") { 40 tansaExtSettings.serverURLs = convertTansaServerXMLToJson(tansaExtSettings.serverAddressXML) 41 } 42 43 if (tansaExtSettings.serverURLs.length == 0) { 44 // initiate URL with new format (JSON Obj) 45 initTansaServerUrls(tansaExtSettings) 46 } 47 48 tansaExtSettings.serverURLs.forEach(function (serverURLObj) { 49 var serverURL = serverURLObj.value 50 if(serverURL.endsWith(":443") || serverURL.endsWith(":80")){ 51 serverURL = removeDefaultPortNumbers(serverURL); 52 serverURLObj.label = serverURL 53 serverURLObj.value = serverURL 54 } 55 }); 56 35 57 var userGuid = window.tansa.getUserGuid(); 36 58 if(!userGuid){ … … 43 65 tansa.settings.userGuid = userGuid; 44 66 45 if( window.localStorageData.activeServerURL){46 tansa.settings.baseUrl = window.localStorageData.activeServerURL + '/' + TANSA_CLIENT_WEB_APP_NAME + '/';47 } 48 49 if( window.localStorageData.userId){50 tansa.settings.userId = window.localStorageData.userId;67 if(tansaExtSettings.activeServerURL){ 68 tansa.settings.baseUrl = createTansaServerURL(tansaExtSettings.activeServerURL) 69 } 70 71 if(tansaExtSettings.userId){ 72 tansa.settings.userId = tansaExtSettings.userId; 51 73 } 52 74 else { 53 window.localStorageData.userId = tansaExtensionInfo.wpUserId;75 tansaExtSettings.userId = tansaExtensionInfo.wpUserId; 54 76 tansa.settings.userId = tansaExtensionInfo.wpUserId; 55 localStorageDataChanged = true;56 } 57 58 var licenseKey = window.localStorageData.licenseKey;59 if(tansaExtensionInfo.licenseKey && licenseKey == undefined){77 isExtSettingsChanged = true; 78 } 79 80 var licenseKey = tansaExtSettings.licenseKey; 81 if(tansaExtensionInfo.licenseKey && licenseKey != tansaExtensionInfo.licenseKey){ 60 82 tansa.settings.isLicenseKeyPreConfigured = true; 61 window.localStorageData.licenseKey = tansaExtensionInfo.licenseKey;62 localStorageDataChanged = true;83 tansaExtSettings.licenseKey = tansaExtensionInfo.licenseKey; 84 isExtSettingsChanged = true; 63 85 } 64 86 tansa.settings.licenseKey = licenseKey; 65 87 66 if(localStorageDataChanged) 67 tansa.setLocalStorageData(window.localStorageData); 68 } 69 70 function getTansaBaseUrl(serverUrl) { 71 return serverUrl + '/' + TANSA_CLIENT_WEB_APP_NAME + '/'; 88 if(isExtSettingsChanged) 89 tansa.setLocalStorageData(tansaExtSettings); 72 90 } 73 91 … … 112 130 113 131 tansa.preConfiguredClientUrls = tansaExtensionInfo.tansaClientURLs; 114 if(!tansa.settings.baseUrl){ //if url is not defined in local storage 115 //check url from TS4 ini 116 checkAndSetBaseUrlFromPreConfiguredURLs(); 117 if(!tansa.settings.baseUrl) //if url is not defined in local storage or TS4 ini 118 tansa.settings.baseUrl = getTansaBaseUrl(TANSA_CLIENT_DEFAULT_URL); 119 } 132 //check url from TS4 ini 133 checkAndSetBaseUrlFromPreConfiguredURLs(); 120 134 121 135 if(!tansa.settings.platformName || !tansa.settings.platformVersion){ 136 window.$ = window.$ || window.jQuery; 122 137 var pgwBrowser = window.$.pgwBrowser(); 123 138 tansa.settings.platformName = pgwBrowser.os.name; … … 130 145 if(data.activeServerURL != oldData.activeServerURL || data.userId != oldData.userId || data.licenseKey != oldData.licenseKey){ 131 146 tansa.setLocalStorageData(data); 132 tansa.settings.baseUrl = getTansaBaseUrl(data.activeServerURL); 147 tansaExtSettings = data; 148 tansa.settings.baseUrl = createTansaServerURL(data.activeServerURL); 133 149 tansa.settings.userId = data.userId; 134 150 checkAndRemoveInvalidTansaJsAndCss(); … … 146 162 147 163 function checkAndSetBaseUrlFromPreConfiguredURLs(){ 148 window.localStorageData = tansa.getLocalStorageData();149 if(tansa.preConfiguredClientUrls && !window.localStorageData.baseUrl){ // assign first URL as base URL; 164 if(tansa.preConfiguredClientUrls){ // assign first URL as base URL; 165 var isExtSettingsChanged = false 150 166 for (var key in tansa.preConfiguredClientUrls) { 151 167 if (tansa.preConfiguredClientUrls.hasOwnProperty(key) && key.toLowerCase().startsWith("url")) { 152 var tansaClientURL = tansa.preConfiguredClientUrls[key]; 153 tansa.settings.baseUrl = getTansaBaseUrl(tansaClientURL); // assign first URL as base URL; 154 window.localStorageData.baseUrl = tansa.settings.baseUrl; 155 break; 156 } 157 } 168 var canUpdateBaseUrl = isCSUMURL(tansaExtSettings.activeServerURL) || isDefaultURL(tansaExtSettings.activeServerURL) 169 var tansaClientURL = tansa.preConfiguredClientUrls[key]; 170 var serverURLJSONObj = createServerURLJsonObj(tansaClientURL); 171 addOrUpdateServerURL(serverURLJSONObj, canUpdateBaseUrl); 172 if(canUpdateBaseUrl) 173 tansa.settings.baseUrl = createTansaServerURL(createURL(tansaClientURL)); // assign first URL as base URL; 174 175 isExtSettingsChanged = true; 176 } 177 } 178 179 if(isExtSettingsChanged) 180 tansa.setLocalStorageData(tansaExtSettings); 158 181 } 159 182 } … … 220 243 window.getParentAppUiLanguageCode = function(){ 221 244 return getLangCode(tansaExtensionInfo.parentAppLangCode); 222 } 245 } 246 247 function createURL(address) { 248 if (address) { 249 address = address.toLowerCase().trim(); 250 while (address.endsWith("/")) 251 address = address.substring(0, address.length - 1); 252 253 if (!address.startsWith("http")) { 254 address = TANSA_WEB_CLIENT_BASE_URL_PROTOCOL + "://" + address; 255 } 256 } 257 return address; 258 } 259 260 function createTansaServerURL(serverURL) { 261 serverURL = createURL(serverURL); 262 return serverURL + "/" + TANSA_CLIENT_WEB_APP_NAME + "/"; 263 } 264 265 function checkAndAddLanguageCodeParameter(url) { 266 var queryString = parseURL(url).search || ""; 267 if(queryString.indexOf("langCode=") == -1){ 268 url += (queryString.trim().length > 0 ? "&" : "?")+"langCode=" + tansa.settings.uiLangCode; 269 } 270 return url; 271 } 272 273 function deleteServerURL(serverURLJsonObj) { 274 var index = tansaExtSettings.serverURLs.indexOf(serverURLJsonObj); 275 if (index > -1) { 276 tansaExtSettings.serverURLs.splice(index, 1); 277 } 278 } 279 280 function removeDefaultPortNumbers(address) { 281 if (address.startsWith("https:") && address.endsWith(":443")) 282 address = address.replace(":443", ''); 283 284 if (address.startsWith("http:") && address.endsWith(":80")) 285 address = address.replace(":80", ''); 286 287 return address; 288 } 289 290 function parseURL(url) { 291 var hrefElement = document.createElement("a"); 292 hrefElement.href = url; 293 return hrefElement; 294 } 295 296 function addOrUpdateServerURL(serverURLJsonObj, canSetActiveServerURL) { 297 var serverURLs = tansaExtSettings.serverURLs; 298 var index = -1; 299 var result = serverURLs.find(function (currentURLObj, currentIndex) { 300 var isFound; 301 if(serverURLJsonObj.address == currentURLObj.address && serverURLJsonObj.protocol == currentURLObj.protocol){ 302 isFound = true; 303 index = currentIndex; 304 } 305 return isFound; 306 }); 307 308 if (index > -1) { 309 tansaExtSettings.serverURLs.splice(index, 1); 310 } 311 312 tansaExtSettings.serverURLs.push(serverURLJsonObj); 313 if(canSetActiveServerURL) 314 tansaExtSettings.activeServerURL = serverURLJsonObj.value; 315 } 316 317 function convertTansaServerXMLToJson(serverAddressXML){ 318 var isCSUMUrlAlreadyExists = false 319 var serverURLs = []; 320 if(serverAddressXML && serverAddressXML.length > 0 ){ 321 var serverAddressXMLObj = $.parseXML(serverAddressXML); 322 var tansaServersXMLElement = $(serverAddressXMLObj.documentElement); 323 if(tansaServersXMLElement){ 324 var serverAddresses = $('server', tansaServersXMLElement); 325 $(serverAddresses).each(function(){ 326 var serverElement = $(this); 327 var protocol = serverElement.attr("protocol"); 328 var address = serverElement.attr("address"); 329 var isActive = serverElement.attr("isActive"); 330 var serverURL = removeDefaultPortNumbers(createURL(protocol + "://" + address)); 331 if(isActive == "true"){ 332 tansaExtSettings.activeServerURL = serverURL; 333 } 334 if(isCSUMURL(serverURL)){ 335 isCSUMUrlAlreadyExists = true 336 } 337 serverURLs.push(createServerURLJsonObj(serverURL)); 338 }); 339 } 340 // push CSUM URL if not exist in collection 341 if(!isCSUMUrlAlreadyExists){ 342 serverURLs.push(createCSUMURLJsonObj()); 343 } 344 } 345 return serverURLs; 346 } 347 348 function setTansaUsernameAndLicenseKey(userId, licenseKey) { 349 tansaExtSettings.userId = userId; 350 tansaExtSettings.licenseKey = licenseKey; 351 } 352 353 function getURLProtocol(urlObj){ 354 return urlObj.protocol.replace(":", ""); 355 } 356 357 function createServerURLJsonObj(serverURL, additionalProperties) { 358 serverURL = createURL(serverURL) 359 var urlObj = parseURL(serverURL); 360 var protocol = getURLProtocol(urlObj); 361 var serverURLJsonObj = { "label": serverURL, "value": serverURL, "address": urlObj.host, "protocol": protocol }; 362 if (additionalProperties) { 363 serverURLJsonObj = Object.assign(additionalProperties, serverURLJsonObj) 364 } 365 return serverURLJsonObj; 366 } 367 368 function createCSUMURLJsonObj() { 369 return createServerURLJsonObj(window.parent.DEFAULT_CSUM_SERVER_URL, { isCSUMServerURL: true }) 370 } 371 372 function initTansaServerUrls(tansaExtSettings) { 373 var defaultServerURLObj = createServerURLJsonObj(window.parent.DEFAULT_ACTIVE_SERVER_NAME) 374 tansaExtSettings.serverURLs.push(defaultServerURLObj); 375 tansaExtSettings.serverURLs.push(createCSUMURLJsonObj()); 376 tansaExtSettings.activeServerURL = defaultServerURLObj.value; 377 } 378 379 function convertTansaServerUrlsToJson(serverURLs) { 380 var isCSUMUrlAlreadyExists = false 381 serverURLs = serverURLs.map(serverURL => { 382 if(isCSUMURL(serverURL)){ 383 isCSUMUrlAlreadyExists = true 384 } 385 return serverURL = createServerURLJsonObj(serverURL) 386 }) 387 // push CSUM URL if not exist in collection 388 if(!isCSUMUrlAlreadyExists){ 389 serverURLs.push(createCSUMURLJsonObj()); 390 } 391 return serverURLs; 392 } 393 394 function isDefaultURL(serverURL) { 395 return serverURL.toLowerCase().endsWith(window.parent.DEFAULT_ACTIVE_SERVER_NAME) 396 } 397 398 function isCSUMURL(serverURL) { 399 return serverURL.toLowerCase().endsWith(window.parent.DEFAULT_CSUM_SERVER_URL) 400 } 401 402 function getServerURLJsonObj(serverURL) { 403 serverURL = createURL(serverURL); 404 var urlObj = parseURL(serverURL); 405 var result = tansaExtSettings.serverURLs.filter(function (serverURLJsonObj) { 406 return serverURLJsonObj.address == urlObj.host && serverURLJsonObj.protocol == getURLProtocol(urlObj); 407 }); 408 409 return result.length == 1 ? result[0] : null; 410 } 223 411 224 412 tansa.initLocalStorageData(); -
tansa/trunk/dist/javascriptapp/js/common.js
r2054562 r2235723 25 25 $(document).ready(function () { 26 26 $(document).bind('contextmenu', function (evt) { 27 //checkAndDisableContextMenu(evt);27 checkAndDisableContextMenu(evt); 28 28 }); 29 29 }); … … 47 47 var result = $("client " + key, window.uiLangaugeStringXML); 48 48 var langString = result.attr("text") || result.attr("tansa") || ""; 49 return langString.replaceAll("%SHORTSYSTEMNAME%", ""); 49 var shortSystemName = window.shortSystemName || "" 50 return langString.replaceAll("%SHORTSYSTEMNAME%", shortSystemName); 50 51 }; 51 52 -
tansa/trunk/dist/javascriptapp/js/connectionDialog.js
r2054562 r2235723 1 2 var TANSA_WEB_CLIENT_BASE_URL_PROTOCOL = "https"; 3 var TANSA_WEB_CLIENT_APP_NAME = "tansaclient"; 4 var DEFAULT_ACTIVE_SERVER_NAME = "tansa"; 5 6 var SELECTOR_SERVER_ADDRESS_FORM = "#serverAddressForm"; 7 var SELECTOR_USER_NAME_FORM = "#usernameForm"; 8 var SELECTOR_SET_ADDRESS_LABEL = "#setAddressLabel"; 9 var SELECTOR_SET_USERNAME_LABEL = "#setUsernameLabel"; 10 var SELECTOR_CONNECT_BTN = "#connectBtn"; 11 var SELECTOR_RE_CONNECT_BTN = "#reConnectBtn"; 12 var SELECTOR_DELETE_SERVER_URL_BTN = "#deleteServerURLBtn"; 13 var SELECTOR_SET_USER_NAME_BTN = "#setUserNameBtn"; 14 var SELECTOR_TANSA_USER_NAME = "#tansaUserName"; 15 var SELECTOR_TANSA_SERVER_URL = "#tansaServerURL"; 16 var SELECTOR_USER_NAME_CONTAINER = "#usernameContainer"; 17 var SELECTOR_CLOSE_BTN = "#closeBtn"; 18 var SELECTOR_ALERT_DIALOG = "#alertDialog"; 19 var SELECTOR_ALERT_DIALOG_OK_BTN = "#alertDialogOkBtn"; 20 var SELECTOR_CONFIRM_DIALOG = "#confirmDialog"; 21 var SELECTOR_CONFIRM_DIALOG_OK_BTN = "#confirmDialogOkBtn"; 22 var SELECTOR_CONFIRM_DIALOG_CANCEL_BTN = "#confirmDialogCancelBtn"; 23 var SELECTOR_LICENSE_KEY = "#licenseKey"; 24 25 var isConnected = true; 26 var tansaServersXMLElement = null; 27 var backgroundPage = { 28 extensionSettings: { 29 activeServerURL: "", 30 userId: "", 31 licenseKey:"", 32 serverAddressXML: "" 33 }, 34 serverURLs: [], 35 platformParentAppAndExtensionInfoQueryString: "", 36 37 deleteServerURL: function(serverURLJsonObj){ 38 var serverElement = $('server[address="' + serverURLJsonObj.address + '"][protocol="' + serverURLJsonObj.protocol + '"]', tansaServersXMLElement); 39 if(serverElement){ 40 serverElement.remove(); 41 updateServerAddressXML(); 42 var index = backgroundPage.serverURLs.indexOf(serverURLJsonObj); 43 if(index > -1){ 44 backgroundPage.serverURLs.splice(index, 1); 45 } 46 } 47 }, 48 49 createURL: function(protocol, address){ 50 return protocol + "://" + address; 51 }, 52 53 parseURL: function(url) { 54 var hrefElement = document.createElement("a"); 55 hrefElement.href = url; 56 return hrefElement; 57 }, 58 59 addOrUpdateServerURL: function(serverURLJsonObj) { 60 var address = serverURLJsonObj.address; 61 var serverElement = $('server[address="' + address + '"][protocol="' + serverURLJsonObj.protocol + '"]', tansaServersXMLElement); 62 var isNewServerURL = serverElement.length == 0; 63 if(isNewServerURL) { 64 serverElement = $(serverAddressXMLObj.createElement("server")); 65 serverElement.attr("address", address); 66 } 67 68 var serverElements = $('server', tansaServersXMLElement); 69 for(var i = 0; i < serverElements.length; i++){ 70 var serverEle = $(serverElements[i]); 71 serverEle.attr("isActive", false); 72 } 73 74 serverElement.attr("protocol", serverURLJsonObj.protocol); 75 serverElement.attr("isActive", true); 76 77 if(isNewServerURL){ 78 serverElement.appendTo(tansaServersXMLElement); 79 } 80 81 var result = backgroundPage.serverURLs.filter(function(serverURLObj){ 82 return serverURLObj.address == address; 83 }); 84 85 if(result.length > 0){ 86 var index = backgroundPage.serverURLs.indexOf(result[0]); 87 if(index > -1){ 88 backgroundPage.serverURLs.splice(index, 1); 89 } 90 } 91 92 backgroundPage.serverURLs.push(serverURLJsonObj); 93 updateServerAddressXML(); 94 backgroundPage.extensionSettings.activeServerURL = backgroundPage.createURL(serverURLJsonObj.protocol, address); 95 // tansa.settings.baseUrl = backgroundPage.extensionSettings.activeServerURL; 96 // resetExtSettings(); 97 isTansaMenuLoaded = false; 98 }, 99 100 removeDefaultPortNumbers: function(address){ 101 if (address.startsWith("https:") && address.endsWith(":443")) 102 address = address.replace(":443", ''); 103 104 if (address.startsWith("http:") && address.endsWith(":80")) 105 address = address.replace(":80", ''); 106 107 return address; 108 }, 109 110 createTansaServerURL: function(serverURL){ 111 serverURL = serverURL.toLowerCase(); 112 while(serverURL.endsWith("/")) 113 serverURL = serverURL.substring(0, serverURL.length - 1); 114 115 if(!serverURL.startsWith("http")){ 116 serverURL = backgroundPage.createURL(TANSA_WEB_CLIENT_BASE_URL_PROTOCOL, serverURL); 117 } 118 return serverURL + "/" + TANSA_WEB_CLIENT_APP_NAME + "/"; 119 }, 120 121 setTansaUsernameAndLicenseKey: function(userId, licenseKey) { 122 backgroundPage.extensionSettings.userId = userId; 123 backgroundPage.extensionSettings.licenseKey = licenseKey; 124 } 125 }; 126 127 function initTansaServerAddresses(){ 128 backgroundPage.serverURLs = []; 129 var serverAddressXML = backgroundPage.extensionSettings.serverAddressXML; 130 if(!serverAddressXML){ 131 serverAddressXML = "<tansaServers></tansaServers>"; 132 } 133 134 if(serverAddressXML){ 135 serverAddressXMLObj = $.parseXML(serverAddressXML); 136 tansaServersXMLElement = $(serverAddressXMLObj.documentElement); 137 } 138 139 if(tansaServersXMLElement){ 140 var defaultPortServerAddressess = $('server[address$=":443"], server[address$=":80"]', tansaServersXMLElement); 141 for(var i = 0; i < defaultPortServerAddressess.length; i++){ 142 var defaultPortServerAddress = defaultPortServerAddressess[i]; 143 var address = defaultPortServerAddress.getAttribute("address"); 144 address = backgroundPage.removeDefaultPortNumbers(address); 145 defaultPortServerAddress.setAttribute("address", address); 146 } 147 148 if(defaultPortServerAddressess && defaultPortServerAddressess.length) 149 updateServerAddressXML(); 150 151 var defaultServerAddress = $('server[address="' + DEFAULT_ACTIVE_SERVER_NAME+ '"]', tansaServersXMLElement); 152 var serverAddresses = $('server', tansaServersXMLElement); 153 if (defaultServerAddress.length == 0) { 154 var isActive = serverAddresses.length == 0 && tansa.preConfiguredClientUrls.length <= 0; 155 defaultServerAddress = $(serverAddressXMLObj.createElement("server")); 156 defaultServerAddress.attr("address", DEFAULT_ACTIVE_SERVER_NAME); 157 defaultServerAddress.attr("protocol", TANSA_WEB_CLIENT_BASE_URL_PROTOCOL); 158 defaultServerAddress.attr("isActive", isActive); 159 defaultServerAddress.appendTo(tansaServersXMLElement); 160 serverAddresses = $('server', tansaServersXMLElement); 161 } 162 // Append urls from TS4 ini 163 if(serverAddresses.length == 1){ 164 if(tansa.preConfiguredClientUrls) { 165 for (var key in tansa.preConfiguredClientUrls) { 166 if (tansa.preConfiguredClientUrls.hasOwnProperty(key) && key.toLowerCase().startsWith("url")) { 167 var tansaClientURL = tansa.preConfiguredClientUrls[key]; 168 var serverURLJsonObj = getServerURLJsonObj(tansaClientURL); 169 var isExistingURL = serverURLJsonObj && serverURLJsonObj.address; 170 if(! isExistingURL){ 171 tansaClientURL = createServerURL(tansaClientURL); 172 var urlObj = backgroundPage.parseURL(tansaClientURL); 173 var protocol = urlObj.protocol.replace(":", ""); 174 defaultServerAddress = $(serverAddressXMLObj.createElement("server")); 175 defaultServerAddress.attr("address", urlObj.host); 176 defaultServerAddress.attr("protocol", protocol); 177 defaultServerAddress.attr("isActive", tansa.settings.baseUrl.indexOf(tansaClientURL) >= 0); 178 defaultServerAddress.appendTo(tansaServersXMLElement); 179 } 180 serverAddresses = $('server', tansaServersXMLElement); 181 } 182 } 183 } 184 } 185 186 $(serverAddresses).each(function(){ 187 var serverElement = $(this); 188 var protocol = serverElement.attr("protocol"); 189 var address = serverElement.attr("address"); 190 var isActive = serverElement.attr("isActive"); 191 address = backgroundPage.removeDefaultPortNumbers(address); 192 var serverURL = backgroundPage.createURL(protocol, address); 193 if(isActive == "true"){ 194 backgroundPage.extensionSettings.activeServerURL = serverURL; 195 //createAndSetTansaServerBaseURL(serverURL); 196 } 197 198 var serverURLJsonObj = { "label" : serverURL, "value" : serverURL, "address" : address, "protocol" : protocol } 199 backgroundPage.serverURLs.push(serverURLJsonObj); 200 }); 201 } 202 updateServerAddressXML(); 203 } 204 205 function updateServerAddressXML() { 206 var serializer = new XMLSerializer(); 207 var serverAddressXML = serializer.serializeToString(serverAddressXMLObj); 208 backgroundPage.extensionSettings.serverAddressXML = serverAddressXML; 209 } 210 211 function init(jsonDataStr){ 212 213 try{ 214 var jsonData = jsonDataStr; 215 backgroundPage.extensionSettings.userId = jsonData.userId || ""; 216 backgroundPage.extensionSettings.licenseKey = jsonData.licenseKey || ""; 217 userGuid = tansa.getUserGuid() || ""; 218 backgroundPage.extensionSettings.serverAddressXML = jsonData.serverAddressXML || ""; 219 backgroundPage.platformParentAppAndExtensionInfoQueryString = "&parentAppId=" + tansa.settings.parentAppId + 220 "&parentAppVersion=" + tansa.settings.parentAppVersion + 221 "&extensionName=" + tansa.settings.extensionName + 222 "&extensionVersion=" + tansa.settings.extensionVersion + 223 "&langCode=" + tansa.settings.langCode + 224 "&platformName=" + tansa.settings.platformName 225 "&platformVersion=" + tansa.settings.platformVersion ; 226 227 var shortSystemName = $("general shortSystemName", window.clientTextsXML).attr("tansa"); 228 window.uiLangaugeStringXML = $("language[code='" + tansa.settings.langCode + "']", window.clientTextsXML); 229 230 //set title for connection dialog 231 var translatedTitle = $.fn.getUILangString("connectionDialog title"); 232 var titleDiv = window.parent.$("#TB_ajaxWindowTitle") 233 if(titleDiv && titleDiv.length > 0) 234 titleDiv[0].innerText = shortSystemName + " " + translatedTitle; 235 236 $.fn.localize(); 237 initTansaServerAddresses(); 238 239 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.extensionSettings.activeServerURL || ""); 240 241 $(SELECTOR_TANSA_USER_NAME).val(backgroundPage.extensionSettings.userId || ""); 242 $(SELECTOR_LICENSE_KEY).val(backgroundPage.extensionSettings.licenseKey || ""); 243 checkAndDisableConnectionBtn(); 244 245 $(SELECTOR_TANSA_SERVER_URL).autocomplete({ 246 minLength: 0, 247 source: backgroundPage.serverURLs || [], 248 select: function(event, ui) { 249 setTimeout(function() { 250 checkAndDisableConnectionBtn(); 251 $(SELECTOR_SERVER_ADDRESS_FORM).valid(); 252 }, 50); 253 } 254 }).click(function () { 255 $(this).autocomplete("search", ""); 256 }).dblclick(function() { 257 $(this).autocomplete("search", ""); 258 }); 259 260 $(SELECTOR_ALERT_DIALOG_OK_BTN).click(function(){ 261 $(SELECTOR_ALERT_DIALOG).dialog('close'); 262 }); 263 264 265 $(SELECTOR_CONNECT_BTN).click(function(){ 266 if($(SELECTOR_SERVER_ADDRESS_FORM).valid()){ 267 connect(backgroundPage.serverURLs.slice(), true, true); 268 } 269 }); 270 271 $(SELECTOR_RE_CONNECT_BTN).click(function(){ 272 if($(SELECTOR_SERVER_ADDRESS_FORM).valid()){ 273 connect(backgroundPage.serverURLs.slice(), true, true); 274 } 275 }); 276 277 $(SELECTOR_DELETE_SERVER_URL_BTN).click(function(){ 278 var serverURL = getCurrentServerURL(); 279 var serverURLJsonObj = getServerURLJsonObj(serverURL); 280 backgroundPage.deleteServerURL(serverURLJsonObj); 281 282 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.extensionSettings.activeServerURL || ""); 283 $(SELECTOR_TANSA_SERVER_URL).autocomplete( "option", "source", backgroundPage.serverURLs); 284 checkAndDisableConnectionBtn(); 285 }); 286 287 $(SELECTOR_TANSA_SERVER_URL).on("keyup", function() { 288 checkAndDisableConnectionBtn(); 289 }); 290 291 $(SELECTOR_SET_USER_NAME_BTN).click(function(){ 292 if($(SELECTOR_USER_NAME_FORM).valid()){ 293 var licenseKey = $(SELECTOR_LICENSE_KEY).val().trim(); 294 var tansaUserName = $(SELECTOR_TANSA_USER_NAME).val().trim(); 295 var serverURL = getCurrentServerURL(); 296 var tansaServerUrl = getTansaServerURL(serverURL); 297 validateUserName(tansaUserName, tansaServerUrl, licenseKey); 298 } 299 }); 300 301 $(SELECTOR_CLOSE_BTN).click(function () { 302 window.parent.$("#TB_closeWindowButton").click() 303 }); 304 305 window.parent.$("#TB_closeWindowButton").click(function() { 306 window.parent.updateLocalStorageData(backgroundPage.extensionSettings) 307 }); 308 309 serverAddressFormValidator = $(SELECTOR_SERVER_ADDRESS_FORM).validate({ 310 rules: { 311 tansaServerURL: { 312 required: true 313 } 314 }, 315 messages: { 316 tansaServerURL: { 317 required: $(SELECTOR_SET_ADDRESS_LABEL).text() + "<br />" 318 } 319 } 320 }); 321 322 var usernameFormValidator = $(SELECTOR_USER_NAME_FORM).validate({ 323 rules: { 324 tansaUserName: { 325 required: true 326 } 327 }, 328 messages: { 329 tansaUserName: { 330 required: $(SELECTOR_SET_USERNAME_LABEL).text() + "<br />" 331 } 332 } 333 }); 334 335 if (backgroundPage.extensionSettings.activeServerURL){ 336 connect([], true, false); 337 } 338 339 340 } 341 catch(err){ 342 console.log(err.message); 343 } 344 } 345 346 function showAlert(msg){ 347 $("#alertMsg").html(msg); 348 var options = { 349 modal: true 350 }; 351 352 $(SELECTOR_ALERT_DIALOG).dialog(options); 353 } 354 355 function showConfirmMsg(msg, okCallBack, cancelCallBack){ 356 $("#confirmMsg").html(msg); 357 var options = { 358 modal: true 359 }; 360 361 $(SELECTOR_CONFIRM_DIALOG_OK_BTN).unbind( "click" ); 362 $(SELECTOR_CONFIRM_DIALOG_CANCEL_BTN).unbind( "click" ); 363 364 $(SELECTOR_CONFIRM_DIALOG_OK_BTN).click(function(){ 365 $(SELECTOR_CONFIRM_DIALOG).dialog("close"); 366 setTimeout(function() { 367 okCallBack(); 368 }, 200); 369 }); 370 371 $(SELECTOR_CONFIRM_DIALOG_CANCEL_BTN).click(function(){ 372 $(SELECTOR_CONFIRM_DIALOG).dialog("close"); 373 setTimeout(function() { 374 cancelCallBack(); 375 }, 200); 376 }); 377 378 $(SELECTOR_CONFIRM_DIALOG).dialog(options); 379 } 380 381 function checkAndDisableConnectionBtn() { 382 var serverURL = getCurrentServerURL(); 383 var activeServerURL = backgroundPage.extensionSettings.activeServerURL; 384 if(serverURL == "" || (isConnected && activeServerURL == serverURL)) 385 $(SELECTOR_CONNECT_BTN).attr("disabled", "disabled"); 386 else 387 $(SELECTOR_CONNECT_BTN).removeAttr("disabled"); 388 389 enableDisableUIControls(); 390 } 391 392 function createServerURL(serverURL) { 393 serverURL = serverURL.toLowerCase(); 394 while(serverURL.endsWith("/")) 395 serverURL = serverURL.substring(0, serverURL.length - 1); 396 397 if(!serverURL.startsWith("http")) 398 serverURL = backgroundPage.createURL(TANSA_WEB_CLIENT_BASE_URL_PROTOCOL, serverURL); 399 400 return serverURL; 401 } 402 403 function getServerURLJsonObj(serverURL){ 404 serverURL = createServerURL(serverURL); 405 var urlObj = backgroundPage.parseURL(serverURL); 406 var result = backgroundPage.serverURLs.filter(function(serverURLJsonObj){ 407 return serverURLJsonObj.address == urlObj.host && serverURLJsonObj.protocol && urlObj.protocol; 408 }); 409 410 return result.length == 1 ? result[0] : null; 411 } 412 413 function serverConnectionSuccess(canShowMessages) { 414 var serverURL = getCurrentServerURL(); 415 var serverURLJsonObj = getServerURLJsonObj(serverURL); 416 var isExistingURL = serverURLJsonObj && serverURLJsonObj.address; 417 if(isExistingURL) { 418 serverURL = backgroundPage.createURL(serverURLJsonObj.protocol, serverURLJsonObj.address); 419 } 420 else{ // new URL 421 serverURL = createServerURL(serverURL); 422 } 423 424 var urlObj = backgroundPage.parseURL(serverURL); 425 var protocol = urlObj.protocol.replace(":", ""); 426 serverURLJsonObj = { "label" : serverURL, "value" : serverURL , "address" : urlObj.host, "protocol" : protocol}; 427 backgroundPage.addOrUpdateServerURL(serverURLJsonObj); 428 backgroundPage.extensionSettings.activeServerURL = serverURL; 429 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.extensionSettings.activeServerURL || ""); 430 $(SELECTOR_TANSA_SERVER_URL).autocomplete( "option", "source", backgroundPage.serverURLs); 431 432 checkAndDisableConnectionBtn(); 433 if(canShowMessages){ 434 var message = $.fn.getUILangString("messages connectSuccessful"); 435 showAlert(message); 436 } 437 } 438 439 function serverConnectionFaild(serverURLs) { 440 var message = $.fn.getUILangString("connectFailedDialog couldNotConnect"); 441 message = message + "<br />" + getCurrentServerURL() + "<br />" + $.fn.getUILangString("connectFailedDialog retryMsg"); 442 443 var okCallBack = function() { 444 connect(serverURLs, true, true); 445 }; 446 447 var cancelCallBack = function(){ 448 if(serverURLs.length > 0){ 449 var serverURL = getCurrentServerURL(); 450 var serverURLJsonObj = getServerURLJsonObj(serverURL); 451 var index = serverURLs.indexOf(serverURLJsonObj); 452 if (index > -1){ 453 serverURLs.splice(index, 1); 454 } 455 456 if(serverURLs.length > 0){ 457 serverURLJsonObj = serverURLs[0]; 458 serverURL = backgroundPage.createURL(serverURLJsonObj.protocol, serverURLJsonObj.address); 459 var couldNotConnectMsg = $.fn.getUILangString("connectionDialog couldNotConnect").replaceAll("%SERVER%", getCurrentServerURL()); 460 var okToReconnectMsg = $.fn.getUILangString("connectionDialog okToReconnect").replaceAll("%PREV_SERVER%", serverURL); 461 var message = couldNotConnectMsg + "<br />" + okToReconnectMsg; 462 463 showConfirmMsg(message, function() { 464 $(SELECTOR_TANSA_SERVER_URL).val(serverURL); 465 connect(serverURLs, true, true); 466 }, 467 function() { } 468 ); 469 } 470 } 471 }; 472 473 showConfirmMsg(message, okCallBack, cancelCallBack); 474 } 475 476 function getCurrentServerURL(){ 477 var currentServerURL = $(SELECTOR_TANSA_SERVER_URL).val().trim(); 478 while(currentServerURL.endsWith("/")) 479 currentServerURL = currentServerURL.substring(0, currentServerURL.length - 1); 480 481 if(!currentServerURL.startsWith("http")){ 482 currentServerURL = backgroundPage.createURL(TANSA_WEB_CLIENT_BASE_URL_PROTOCOL, currentServerURL); 483 } 484 485 return backgroundPage.removeDefaultPortNumbers(currentServerURL); 486 } 487 488 function getTansaServerURL(serverURL) { 489 var serverURLJsonObj = getServerURLJsonObj(serverURL); 490 if(serverURLJsonObj && serverURLJsonObj.value) 491 serverURL = backgroundPage.createURL(serverURLJsonObj.protocol, serverURLJsonObj.address); 492 493 return backgroundPage.createTansaServerURL(serverURL); 494 } 495 496 function connect(serverURLs, async, canShowMessages){ 497 blockUI(); 498 var serverURL = getCurrentServerURL(); 499 tansaServerUrl = getTansaServerURL(serverURL); 500 $.ajax({ 501 url : tansaServerUrl + "ts4service/isConnected?UUID=" + new Date().getTime(), 502 dataType : "text", 503 async : async, 504 success : function(response) { 505 $.unblockUI(); 506 if(response == "true"){ 507 isConnected = true; 508 serverConnectionSuccess(canShowMessages); 509 } 510 }, 511 512 error : function(jqXHR, textStatus, errorThrown) { 513 $.unblockUI(); 514 if(canShowMessages) 515 serverConnectionFaild(serverURLs); 516 else { 517 isConnected = false; 518 $(SELECTOR_CONNECT_BTN).removeAttr("disabled"); 519 enableDisableUIControls(); 520 } 521 } 522 }); 523 } 524 525 function enableDisableUIControls() { 526 var serverURL = getCurrentServerURL(); 527 if($(SELECTOR_CONNECT_BTN).is(":disabled") && serverURL != ""){ 528 $(SELECTOR_USER_NAME_CONTAINER).removeAttr("disabled"); 529 $(SELECTOR_RE_CONNECT_BTN).removeAttr("disabled"); 530 } 531 else{ 532 $(SELECTOR_USER_NAME_CONTAINER).attr("disabled", "disabled"); 533 $(SELECTOR_RE_CONNECT_BTN).attr("disabled", "disabled"); 534 } 535 536 537 var serverURLJsonObj = getServerURLJsonObj(serverURL); 538 var canDeleteServerURL = serverURLJsonObj && backgroundPage.extensionSettings.activeServerURL != serverURL && !serverURLJsonObj.address.endsWith(DEFAULT_ACTIVE_SERVER_NAME); 539 if(canDeleteServerURL) 540 $(SELECTOR_DELETE_SERVER_URL_BTN).removeAttr("disabled"); 541 else 542 $(SELECTOR_DELETE_SERVER_URL_BTN).attr("disabled", "disabled"); 543 544 } 545 546 function validateUserName(tansaUserName, tansaServerUrl, licenseKey, callback) { 547 blockUI(); 548 $.ajax({ 549 url : tansaServerUrl + "ts4service/isUserExist?" + 550 "tansaUserId="+ tansaUserName + 551 "&userGuid="+ userGuid + 552 "&licenseKey="+ licenseKey + 553 backgroundPage.platformParentAppAndExtensionInfoQueryString + 554 "&UUID=" + new Date().getTime(), 555 dataType : "text", 556 success : function(response) { 557 $.unblockUI(); 558 if(response == "true"){ 559 backgroundPage.setTansaUsernameAndLicenseKey(tansaUserName, licenseKey); 560 var message = $.fn.getUILangString("connectionDialog userSetOk"); 561 showAlert(message); 562 } 563 else{ 564 var message = $.fn.getUILangString("connectionDialog userSetNotFound"); 565 showAlert(message); 566 } 567 }, 568 569 error : function(jqXHR, textStatus, errorThrown) { 570 $.unblockUI(); 571 var message = $.fn.getUILangString("connectionDialog userSetNotFound"); 572 showAlert(message); 573 } 574 }); 575 } 576 577 $(document).ready(function () { 578 window.clientTextsXML = window.getClientTextsXML(); 579 window.tansa = window.parent.tansa; 580 window.tansaExtensionInfo = window.parent.tansaExtensionInfo; 581 init(tansa.getLocalStorageData()); 582 // $.unblockUI(); 1 var backgroundPage = window.parent; 2 3 var AJAX_REQUEST_TIME_OUT = 10000; 4 var clientTextsXML = getClientTextsXML(); 5 var shortSystemName = $("general shortSystemName", clientTextsXML).attr("tansa"); 6 var longSystemName = $("general longSystemName", clientTextsXML).attr("tansa"); 7 8 var uiLangCode = window.parent.getParentAppUiLanguageCode(); 9 var uiLangaugeStringXML = $("language[code='"+uiLangCode+"']", clientTextsXML); 10 var tansa = window.parent.tansa; 11 12 var platformParentAppAndExtensionInfoQueryString = "&parentAppId=" + tansa.settings.parentAppId + 13 "&parentAppVersion=" + tansa.settings.parentAppVersion + 14 "&extensionName=" + tansa.settings.extensionName + 15 "&extensionVersion=" + tansa.settings.extensionVersion + 16 "&langCode=" + tansa.settings.langCode + 17 "&platformName=" + tansa.settings.platformName 18 "&platformVersion=" + tansa.settings.platformVersion; 19 20 $(document).ready(function () { 21 22 $.fn.localize(); 23 24 var isConnected = true; 25 26 var SELECTOR_SERVER_ADDRESS_FORM = "#serverAddressForm"; 27 var SELECTOR_USER_NAME_FORM = "#usernameForm"; 28 var SELECTOR_SET_ADDRESS_LABEL = "#setAddressLabel"; 29 var SELECTOR_SET_USERNAME_LABEL = "#setUsernameLabel"; 30 var SELECTOR_CONNECT_BTN = "#connectBtn"; 31 var SELECTOR_RE_CONNECT_BTN = "#reConnectBtn"; 32 var SELECTOR_DELETE_SERVER_URL_BTN = "#deleteServerURLBtn"; 33 var SELECTOR_SET_USER_NAME_BTN = "#setUserNameBtn"; 34 var SELECTOR_TANSA_USER_NAME = "#tansaUserName"; 35 var SELECTOR_TANSA_SERVER_URL = "#tansaServerURL"; 36 var SELECTOR_USER_NAME_CONTAINER = "#usernameContainer"; 37 var SELECTOR_CLOSE_BTN = "#closeBtn"; 38 39 var SELECTOR_GET_LICENSE_KEY_FORM = "#getLicenseKeyForm"; 40 var SELECTOR_LICENSE_DIALOG = '#getLicenseKeyDialog'; 41 var SELECTOR_GET_LICENSE_KEY_BTN_CONTAINER = '#getLicenseKeyBtnContainer'; 42 var SELECTOR_GET_LICENSE_KEY_BTN = '#getLicenseKeyBtn'; 43 var SELECTOR_LICENSE_DIALOG_OK_BTN = '#licenseKeyDialogOkBtn'; 44 var SELECTOR_LICENSE_DIALOG_CANCEL_BTN = '#licenseKeyDialogCancelBtn'; 45 var SELECTOR_LICENSE_DIALOG_EMAIL_ID = '#emailId'; 46 47 var SELECTOR_ALERT_DIALOG = "#alertDialog"; 48 var SELECTOR_ALERT_DIALOG_OK_BTN = "#alertDialogOkBtn"; 49 var SELECTOR_CONFIRM_DIALOG = "#confirmDialog"; 50 var SELECTOR_CONFIRM_DIALOG_OK_BTN = "#confirmDialogOkBtn"; 51 var SELECTOR_CONFIRM_DIALOG_CANCEL_BTN = "#confirmDialogCancelBtn"; 52 var SELECTOR_LICENSE_KEY = "#licenseKey"; 53 54 var SELECTOR_CONNECTION_DIALOG_TITLE = "#TB_ajaxWindowTitle"; 55 var SELECTOR_CONNECTION_DIALOG_CLOSE_BTN = "#TB_closeWindowButton"; 56 57 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.tansaExtSettings.activeServerURL || ""); 58 $(SELECTOR_TANSA_USER_NAME).val(backgroundPage.tansaExtSettings.userId || ""); 59 $(SELECTOR_LICENSE_KEY).val(backgroundPage.tansaExtSettings.licenseKey || ""); 60 61 var isMacOs = ("platform" in navigator) && (navigator.platform.indexOf("Mac", 0) == 0 || navigator.platform.indexOf("iPhone", 0) == 0 || navigator.platform.indexOf("iPad", 0) == 0 || navigator.platform.indexOf("iPod", 0) == 0); 62 if (isMacOs) { 63 $(".windows-only").remove(); 64 $(".mac-only").show(); 65 $(".mac-only").css("display", "inline-block"); 66 } else { 67 $(".mac-only").remove(); 68 } 69 checkAndDisableConnectionBtn(); 70 71 // set title of the connection dialog 72 var translatedTitle = $.fn.getUILangString("connectionDialog title"); 73 var titleDiv = window.parent.$(SELECTOR_CONNECTION_DIALOG_TITLE) 74 if(titleDiv && titleDiv.length > 0) 75 titleDiv[0].innerText = translatedTitle; 76 77 $(SELECTOR_TANSA_SERVER_URL).autocomplete({ 78 minLength: 0, 79 source: backgroundPage.tansaExtSettings.serverURLs || [], 80 select: function (event, ui) { 81 setTimeout(function () { 82 checkAndDisableConnectionBtn(); 83 $(SELECTOR_SERVER_ADDRESS_FORM).valid(); 84 }, 50); 85 } 86 }).click(function () { 87 $(this).autocomplete("search", ""); 88 }).dblclick(function () { 89 $(this).autocomplete("search", ""); 90 }); 91 92 $(SELECTOR_ALERT_DIALOG_OK_BTN).click(function () { 93 $(SELECTOR_ALERT_DIALOG).dialog('close'); 94 }); 95 96 $(SELECTOR_LICENSE_DIALOG_CANCEL_BTN).click(function () { 97 $(SELECTOR_LICENSE_DIALOG).dialog('close'); 98 }); 99 100 $(SELECTOR_LICENSE_DIALOG_OK_BTN).click(function () { 101 if ($(SELECTOR_GET_LICENSE_KEY_FORM).valid()) { 102 var emailId = $(SELECTOR_LICENSE_DIALOG_EMAIL_ID).val().trim(); 103 getLicenseKey(emailId, true); 104 } 105 }); 106 107 $(SELECTOR_GET_LICENSE_KEY_BTN).click(function () { 108 showDialog(SELECTOR_LICENSE_DIALOG) 109 }); 110 111 $(SELECTOR_CLOSE_BTN).click(function () { 112 window.parent.$(SELECTOR_CONNECTION_DIALOG_CLOSE_BTN).click() 113 }); 114 115 window.parent.$(SELECTOR_CONNECTION_DIALOG_CLOSE_BTN).click(function() { 116 window.parent.updateLocalStorageData(backgroundPage.tansaExtSettings) 117 }); 118 119 $(SELECTOR_CONNECT_BTN).click(function () { 120 if ($(SELECTOR_SERVER_ADDRESS_FORM).valid()) { 121 connect(backgroundPage.tansaExtSettings.serverURLs.slice(), true, true); 122 } 123 }); 124 125 $(SELECTOR_RE_CONNECT_BTN).click(function () { 126 if ($(SELECTOR_SERVER_ADDRESS_FORM).valid()) { 127 connect(backgroundPage.tansaExtSettings.serverURLs.slice(), true, true); 128 } 129 }); 130 131 $(SELECTOR_DELETE_SERVER_URL_BTN).click(function () { 132 var serverURL = getCurrentServerURL(); 133 // to match with new format 134 var serverURLJsonObj = backgroundPage.getServerURLJsonObj(serverURL); 135 backgroundPage.deleteServerURL(serverURLJsonObj); 136 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.tansaExtSettings.activeServerURL || ""); 137 $(SELECTOR_TANSA_SERVER_URL).autocomplete("option", "source", backgroundPage.tansaExtSettings.serverURLs); 138 checkAndDisableConnectionBtn(); 139 }); 140 141 $(SELECTOR_TANSA_SERVER_URL).on("keyup", function () { 142 checkAndDisableConnectionBtn(); 143 }); 144 145 $(SELECTOR_SET_USER_NAME_BTN).click(function () { 146 if ($(SELECTOR_USER_NAME_FORM).valid()) { 147 var licenseKey = $(SELECTOR_LICENSE_KEY).val().trim(); 148 var tansaUserName = $(SELECTOR_TANSA_USER_NAME).val().trim(); 149 var tansaServerUrl = getCurrentServerURL(); 150 tansaServerUrl = backgroundPage.createTansaServerURL(tansaServerUrl); 151 validateUserName(tansaUserName, tansaServerUrl, licenseKey); 152 } 153 }); 154 155 function checkAndDisableConnectionBtn() { 156 var serverURL = getCurrentServerURL(); 157 var activeServerURL = backgroundPage.tansaExtSettings.activeServerURL; 158 if (serverURL == "" || (isConnected && activeServerURL == serverURL && backgroundPage.getServerURLJsonObj(serverURL))) 159 $(SELECTOR_CONNECT_BTN).attr("disabled", "disabled"); 160 else 161 $(SELECTOR_CONNECT_BTN).removeAttr("disabled"); 162 163 enableDisableUIControls(); 164 } 165 166 function serverConnectionSuccess(canShowMessages) { 167 var serverURL = getCurrentServerURL(); 168 addOrUpdateServerURL(serverURL) 169 170 $(SELECTOR_TANSA_SERVER_URL).autocomplete("option", "source", backgroundPage.tansaExtSettings.serverURLs); 171 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.tansaExtSettings.activeServerURL || ""); 172 checkAndDisableConnectionBtn(); 173 if (canShowMessages) { 174 var message = $.fn.getUILangString("messages connectSuccessful"); 175 showAlert(message); 176 } 177 } 178 179 function addOrUpdateServerURL(serverURL) { 180 var serverURLJsonObj = backgroundPage.getServerURLJsonObj(serverURL); 181 var isExistingURL = serverURLJsonObj && serverURLJsonObj.address; 182 if (!isExistingURL) { 183 serverURLJsonObj = backgroundPage.createServerURLJsonObj(serverURL) 184 } 185 backgroundPage.addOrUpdateServerURL(serverURLJsonObj, true); 186 } 187 188 function showDialog(selector) { 189 var options = { 190 modal: true 191 }; 192 $(selector).dialog(options); 193 } 194 195 function showAlert(msg) { 196 $("#alertMsg").html(msg); 197 showDialog(SELECTOR_ALERT_DIALOG); 198 } 199 200 function showConfirmMsg(msg, okCallBack, cancelCallBack) { 201 $("#confirmMsg").html(msg); 202 $(SELECTOR_CONFIRM_DIALOG_OK_BTN).unbind("click"); 203 $(SELECTOR_CONFIRM_DIALOG_CANCEL_BTN).unbind("click"); 204 205 $(SELECTOR_CONFIRM_DIALOG_OK_BTN).click(function () { 206 $(SELECTOR_CONFIRM_DIALOG).dialog("close"); 207 setTimeout(function () { 208 okCallBack(); 209 }, 200); 210 }); 211 212 $(SELECTOR_CONFIRM_DIALOG_CANCEL_BTN).click(function () { 213 $(SELECTOR_CONFIRM_DIALOG).dialog("close"); 214 setTimeout(function () { 215 cancelCallBack(); 216 }, 200); 217 }); 218 219 showDialog(SELECTOR_CONFIRM_DIALOG); 220 } 221 222 function serverConnectionFaild(serverURLs) { 223 var message = $.fn.getUILangString("connectFailedDialog couldNotConnect"); 224 message = message + "<br />" + getCurrentServerURL() + "<br />" + $.fn.getUILangString("connectFailedDialog retryMsg"); 225 226 var okCallBack = function () { 227 connect(serverURLs, true, true); 228 }; 229 230 var cancelCallBack = function () { 231 if (serverURLs.length > 0) { 232 var serverURL = getCurrentServerURL(); 233 var serverURLJsonObj = backgroundPage.getServerURLJsonObj(serverURL); 234 var index = serverURLs.indexOf(serverURLJsonObj); 235 if (index > -1) { 236 serverURLs.splice(index, 1); 237 } 238 239 if (serverURLs.length > 0) { 240 serverURLJsonObj = serverURLs[serverURLs.length - 1]; 241 serverURL = serverURLJsonObj.value; 242 var couldNotConnectMsg = $.fn.getUILangString("connectionDialog couldNotConnect").replaceAll("%SERVER%", getCurrentServerURL()); 243 var okToReconnectMsg = $.fn.getUILangString("connectionDialog okToReconnect").replaceAll("%PREV_SERVER%", serverURL); 244 var message = couldNotConnectMsg + "<br />" + okToReconnectMsg; 245 246 showConfirmMsg(message, 247 function () { 248 $(SELECTOR_TANSA_SERVER_URL).val(serverURL); 249 connect(serverURLs, true, true); 250 }, 251 function () { }); 252 } 253 } 254 }; 255 256 showConfirmMsg(message, okCallBack, cancelCallBack); 257 } 258 259 function getCurrentServerURL() { 260 var currentServerURL = $(SELECTOR_TANSA_SERVER_URL).val().trim(); 261 // handles adding protocol if not present and removes trailing slash 262 currentServerURL = backgroundPage.createURL(currentServerURL); 263 return backgroundPage.removeDefaultPortNumbers(currentServerURL); 264 } 265 266 function getLicenseKey(emailId, async) { 267 blockUI(); 268 var csumServerURL = getCurrentServerURL(); 269 csumServerURL = backgroundPage.createURL(csumServerURL) 270 $.ajax({ 271 url: csumServerURL + "/rest/licenseKey?UUID=" + new Date().getTime() + "&email=" + emailId, 272 dataType: "json", 273 async: async, 274 success: function (response) { 275 $.unblockUI(); 276 $(SELECTOR_LICENSE_DIALOG).dialog('close'); 277 if (response && response.serverAddress) { 278 var serverURL = backgroundPage.createURL(response.serverAddress); 279 serverURL = backgroundPage.removeDefaultPortNumbers(serverURL); 280 $(SELECTOR_TANSA_SERVER_URL).val(serverURL); 281 // this function is called in order to add server URL 282 // and update autocomplete URLs for connection dialog 283 serverConnectionSuccess(false); 284 var message = $.fn.getUILangString("connectionDialog serverSetAndLicenseKeySend"); 285 showAlert(message) 286 } 287 }, 288 289 error: function (jqXHR, textStatus, errorThrown) { 290 $.unblockUI(); 291 var message = $.fn.getUILangString("connectionDialog emailNotRegistered"); 292 getLicenseKeyFormValidator.showErrors({ 293 emailId: message 294 }) 295 enableDisableUIControls() 296 } 297 }); 298 } 299 300 function connect(serverURLs, async, canShowMessages) { 301 blockUI(); 302 var tansaServerUrl = getCurrentServerURL(); 303 tansaServerUrl = backgroundPage.createTansaServerURL(tansaServerUrl); 304 $.ajax({ 305 url: tansaServerUrl + "ts4service/isConnected?UUID=" + new Date().getTime(), 306 dataType: "text", 307 async: async, 308 success: function (response) { 309 $.unblockUI(); 310 if (response == "true") { 311 isConnected = true; 312 serverConnectionSuccess(canShowMessages); 313 } 314 }, 315 316 error: function (jqXHR, textStatus, errorThrown) { 317 $.unblockUI(); 318 isConnected = false; 319 if (canShowMessages) 320 serverConnectionFaild(serverURLs); 321 else { 322 $(SELECTOR_CONNECT_BTN).removeAttr("disabled"); 323 enableDisableUIControls(); 324 } 325 } 326 }); 327 } 328 329 function enableDisableUIControls() { 330 var serverURL = getCurrentServerURL(); 331 if ($(SELECTOR_CONNECT_BTN).is(":disabled") && serverURL != "") { 332 $(SELECTOR_USER_NAME_CONTAINER).removeAttr("disabled"); 333 $(SELECTOR_RE_CONNECT_BTN).removeAttr("disabled"); 334 } else { 335 $(SELECTOR_USER_NAME_CONTAINER).attr("disabled", "disabled"); 336 $(SELECTOR_RE_CONNECT_BTN).attr("disabled", "disabled"); 337 } 338 339 var canDeleteServerURL = false; 340 var activeServerURL = backgroundPage.tansaExtSettings.activeServerURL; 341 if (activeServerURL != serverURL && !(backgroundPage.isDefaultURL(serverURL) || backgroundPage.isCSUMURL(serverURL)) && backgroundPage.getServerURLJsonObj(serverURL)) 342 canDeleteServerURL = true; 343 344 if (canDeleteServerURL) 345 $(SELECTOR_DELETE_SERVER_URL_BTN).removeAttr("disabled"); 346 else 347 $(SELECTOR_DELETE_SERVER_URL_BTN).attr("disabled", "disabled"); 348 349 if (backgroundPage.isCSUMURL(serverURL)) { 350 $(SELECTOR_GET_LICENSE_KEY_BTN_CONTAINER).css("display", "inline-block"); 351 if (backgroundPage.isCSUMURL(activeServerURL)) 352 $(SELECTOR_GET_LICENSE_KEY_BTN).removeAttr("disabled"); 353 else 354 $(SELECTOR_GET_LICENSE_KEY_BTN).attr("disabled", "disabled"); 355 } else { 356 $(SELECTOR_GET_LICENSE_KEY_BTN_CONTAINER).css("display", "none"); 357 } 358 } 359 360 function validateUserName(tansaUserName, tansaServerUrl, licenseKey, callback) { 361 blockUI(); 362 $.ajax({ 363 url: tansaServerUrl + "ts4service/isUserExist?" + 364 "tansaUserId=" + tansaUserName + 365 "&userGuid=" + tansa.settings.userGuid + 366 "&licenseKey=" + licenseKey + 367 platformParentAppAndExtensionInfoQueryString + 368 "&UUID=" + new Date().getTime(), 369 dataType: "text", 370 371 success: function (response) { 372 $.unblockUI(); 373 if (response == "true") { 374 backgroundPage.setTansaUsernameAndLicenseKey(tansaUserName, licenseKey); 375 var message = $.fn.getUILangString("connectionDialog userSetOk"); 376 showAlert(message); 377 } else { 378 var message = $.fn.getUILangString("connectionDialog userSetNotFound"); 379 showAlert(message); 380 } 381 }, 382 383 error: function (jqXHR, textStatus, errorThrown) { 384 $.unblockUI(); 385 var message = $.fn.getUILangString("connectionDialog userSetNotFound"); 386 showAlert(message); 387 } 388 }); 389 } 390 391 var serverAddressFormValidator = $(SELECTOR_SERVER_ADDRESS_FORM).validate({ 392 rules: { 393 tansaServerURL: { 394 required: true 395 } 396 }, 397 398 messages: { 399 tansaServerURL: { 400 required: $(SELECTOR_SET_ADDRESS_LABEL).text() + "<br />" 401 } 402 } 403 404 }); 405 406 var usernameFormValidator = $(SELECTOR_USER_NAME_FORM).validate({ 407 rules: { 408 tansaUserName: { 409 required: true 410 } 411 }, 412 413 messages: { 414 tansaUserName: { 415 required: $(SELECTOR_SET_USERNAME_LABEL).text() + "<br />" 416 } 417 } 418 }); 419 420 var getLicenseKeyFormValidator = $(SELECTOR_GET_LICENSE_KEY_FORM).validate({ 421 rules: { 422 emailId: { 423 required: true, 424 email: true 425 } 426 }, 427 messages: { 428 emailId: { 429 required: $.fn.getUILangString("loginDialog noEmail"), 430 email: $.fn.getUILangString("loginDialog invalidEmail") 431 } 432 }, 433 errorPlacement: function (error, element) { 434 $("#getLicenseKeyDialog-error").html(error); 435 } 436 }) 437 438 if (backgroundPage.tansaExtSettings.activeServerURL) { 439 connect([], false, false); 440 // if active URL is not connected 441 // And active URL is default server URL 442 // then try connecting to CSUM Server. 443 if (!isConnected && backgroundPage.isDefaultURL(backgroundPage.tansaExtSettings.activeServerURL)) { 444 var csumURLJSONObj = backgroundPage.createCSUMURLJsonObj() 445 $(SELECTOR_TANSA_SERVER_URL).val(csumURLJSONObj.value); 446 connect([], false, false); 447 if (!isConnected) { 448 $(SELECTOR_TANSA_SERVER_URL).val(backgroundPage.tansaExtSettings.activeServerURL) 449 } 450 } 451 } 583 452 }); -
tansa/trunk/readme.txt
r2113363 r2235723 4 4 Tested up to: 5.2 5 5 Requires PHP: 5.6.20 6 Stable tag: 5.0.1. 96 Stable tag: 5.0.1.10 7 7 License: GPLv2 or later 8 8 … … 33 33 * There will be a red Tansa button in the toolbar above the text editing area. 34 34 35 1. If you are hosting your own WordPress on Windows Server, you can preconfigure the Tansa server connection for all your users, by creating this file on the server: %programdata%/tansa/ts4.ini, with this content: 36 37 >[License] 38 >key=178f10d9-e982-4c29-9ebd-39b8ad50a248 39 40 >[WebClient] 41 >url=https://tansa.company.com 42 43 Where 44 * "178f10d9-e982-4c29-9ebd-39b8ad50a248" needs to be replaced with the actual license key provided by Tansa Systems. 45 * "https://tansa.company.com" needs to be replaced with the actual URL to your Tansa server. 46 47 If you have more than one active Tansa server, for example an additional Tansa test server, then you can let your users switch between them by adding multiple URLs, like this 48 >[WebClient] 49 >url=https://tansa.company.com 50 >url2=https://tansatest.company.com 51 52 The URL key name have to start with "url" and be unique. If you do this, the users will be able to change Tansa server connection in the Tansa menu item "Connection". 35 2. Once the Tansa plugin is installed and activated, you will see the "Tansa Settings" menu in the main menu section, where you can preconfigure the Tansa "Server URL" and "License Key" for all your users. 36 For more information on how set the Server URL and License Key, please see the screenshot section. 53 37 54 38 == How to use? == … … 60 44 == Screenshots == 61 45 1. Install Tansa Extension 62 2. Gutenberg - Tansa Button 63 3. Gutenberg - Add Tansa to editor top bar 64 4. Gutenberg - Tansa Menu 65 5. TinyMCE - Tansa Button 66 6. TinyMCE - Tansa Menu 67 7. Tansa Proofing Window 68 8. Tansa Connection Window (If user wants to change server, username or license) 46 2. Configure Tansa Server URL and License Key 47 3. Gutenberg - Tansa Button 48 4. Gutenberg - Add Tansa to editor top bar 49 5. Gutenberg - Tansa Menu 50 6. TinyMCE - Tansa Button 51 7. TinyMCE - Tansa Menu 52 8. Tansa Proofing Window 53 9. Tansa Connection Window (If user wants to change server, username or license) 69 54 70 55 == Changelog == 71 56 57 = 5.0.1.10 = 58 * Added Tansa settings option page 59 * Updated connection dialog 60 72 61 = 5.0.1.9 = 73 Tansa plugin description updates.62 * Tansa plugin description updates. 74 63 75 64 = 5.0.1.8 = 76 Added support for WordPress 5.265 * Added support for WordPress 5.2 77 66 78 67 = 5.0.1.7 = 79 Fixed issue with running Tansa in WP Debug mode.68 * Fixed issue with running Tansa in WP Debug mode. 80 69 81 70 = 5.0.1.6 = 82 UI related changes.83 Some important bug fixes.71 * UI related changes. 72 * Some important bug fixes. 84 73 85 74 = 5.0.1.5 = 86 Compatible with older PHP versions.75 * Compatible with older PHP versions. 87 76 88 77 = 5.0.1.4 = 89 Added support for Gutenberg editor. Compatible with Tansa Client 5.0.89.2084 and higher.78 * Added support for Gutenberg editor. Compatible with Tansa Client 5.0.89.2084 and higher. 90 79 91 80 = 5.0.0.3 = 92 Connection support added. Compatible with Tansa Client 5.0.66.1821 and higher.81 * Connection support added. Compatible with Tansa Client 5.0.66.1821 and higher. 93 82 94 83 = 5.0.0.2 = 95 Issue fixed: Headers already sent.96 Description of the plugin changed.84 * Issue fixed: Headers already sent. 85 * Description of the plugin changed. 97 86 98 87 = 5.0.0.1 = 99 Localization support added. Compatible with Tansa Client 5.0.65.1799 and higher.88 * Localization support added. Compatible with Tansa Client 5.0.65.1799 and higher. 100 89 101 90 = 5.0.0.0 = 102 First release.91 * First release. 103 92 104 93 == Upgrade Notice == 105 94 95 = 5.0.1.10 = 96 * Added Tansa settings option page 97 * Updated connection dialog 98 106 99 = 5.0.1.9 = 107 Tansa plugin description updates.100 * Tansa plugin description updates. 108 101 109 102 = 5.0.1.8 = 110 Added support for WordPress 5.2103 * Added support for WordPress 5.2 111 104 112 105 = 5.0.1.7 = 113 Fixed issue with running Tansa in WP Debug mode.106 * Fixed issue with running Tansa in WP Debug mode. 114 107 115 108 = 5.0.1.6 = 116 UI related changes.117 Some important bug fixes.109 * UI related changes. 110 * Some important bug fixes. 118 111 119 112 = 5.0.1.5 = 120 Compatible with older PHP versions.113 * Compatible with older PHP versions. 121 114 122 115 = 5.0.1.4 = 123 Added support for Gutenberg editor. Compatible with Tansa Client 5.0.89.2084 and higher.116 * Added support for Gutenberg editor. Compatible with Tansa Client 5.0.89.2084 and higher. 124 117 125 118 = 5.0.0.3 = 126 Connection support added. Compatible with Tansa Client 5.0.66.1821 and higher.119 * Connection support added. Compatible with Tansa Client 5.0.66.1821 and higher. 127 120 128 121 = 5.0.0.2 = 129 Issue fixed: Headers already sent.130 Description of the plugin changed.122 * Issue fixed: Headers already sent. 123 * Description of the plugin changed. 131 124 132 125 = 5.0.0.1 = 133 Localization support added. Compatible with Tansa Client 5.0.65.1799 and higher.126 * Localization support added. Compatible with Tansa Client 5.0.65.1799 and higher. -
tansa/trunk/tansa.php
r2113363 r2235723 3 3 * Plugin Name: Tansa 4 4 * Plugin URI: "https://wordpress.org/plugins/tansa/" 5 * Version: 5.0.1. 95 * Version: 5.0.1.10 6 6 * Author: Tansa Systems AS 7 7 * Author URI: https://www.tansa.com … … 9 9 * License: GPLv2 or later */ 10 10 11 $settingsSectionId = 'settings_section'; 12 $settingsMenuSlugId = 'settings_page_slug'; 13 $serverUrlSettingsFieldId = 'tansa_server_url'; 14 $licenseKeySettingsFieldId = 'tansa_license_key'; 15 11 16 defined('ABSPATH') || exit; 12 17 if ( ! function_exists('wp_get_current_user')) { … … 18 23 */ 19 24 function register_tansa_extension_info() { 20 //Reads Tansa INI file content. 25 global $serverUrlSettingsFieldId, $licenseKeySettingsFieldId; 26 21 27 $TansaFolderName = 'Tansa'; 22 $licenseKey = ''; 23 $tansaClientURLs = []; 28 $licenseKey = get_option($licenseKeySettingsFieldId); //getenv('TANSA_LICENSE_KEY'); //get_option('tansa_server_url'); 29 $tansaServerURL = get_option($serverUrlSettingsFieldId); //getenv('TANSA_SERVER_URL'); // get_option('tansa_license_key'); 30 $tansaClientURLs = array(); 31 if(!empty($tansaServerURL)){ 32 $tansaClientURLs = array('url' => $tansaServerURL); 33 } 34 24 35 if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { 25 36 $tansaIniFilePath = getenv('programdata') . DIRECTORY_SEPARATOR . $TansaFolderName . DIRECTORY_SEPARATOR . 'TS4.ini'; … … 39 50 'wpUserId' => $current_user -> data -> user_email, 40 51 'licenseKey' => $licenseKey, 41 'tansaClientURLs' => $tansaClientURLs, 52 'tansaClientURLs' => $tansaClientURLs, 42 53 'pluginPath' => plugins_url('dist', __FILE__)); 43 54 wp_localize_script('register_tansa_extension_info', 'tansaExtensionInfo', $variables); … … 131 142 } 132 143 144 function tansa_plugin_create_menu() { 145 //create new top-level menu 146 add_menu_page('Tansa Plugin Settings', 'Tansa Settings', 'manage_options', __FILE__, 'tansa_plugin_settings_page', plugins_url('dist/img/TS.png', __FILE__) ); 147 //call register settings function 148 add_action( 'admin_init', 'register_tansa_plugin_settings' ); 149 } 150 133 151 if ( is_admin() ) { 152 add_action('admin_menu', 'tansa_plugin_create_menu'); 134 153 // Hook scripts function into block editor hook 135 154 add_action('enqueue_block_assets', 'load_tansa_gutenberg'); … … 137 156 add_action('init', 'load_tansa_tinymce'); 138 157 } 158 159 function register_tansa_plugin_settings() { 160 //register our settings 161 global $settingsSectionId; 162 163 add_settings_section( $settingsSectionId, '', false, $GLOBALS['settingsMenuSlugId']); 164 $fields = array( 165 array( 166 'uid' => $GLOBALS['serverUrlSettingsFieldId'], 167 'label' => 'Server URL', 168 'section' => $settingsSectionId, 169 'type' => 'text', 170 'options' => false, 171 'placeholder' => 'Tansa Server URL', 172 'helper' => '', 173 'supplemental' => 'Default value provided for development only. For production, please set the correct URL. This value is unique to each deployment environment.', 174 'default' => 'https://d02.tansa.com/' 175 ), 176 array( 177 'uid' => $GLOBALS['licenseKeySettingsFieldId'], 178 'label' => 'License Key', 179 'section' => $settingsSectionId, 180 'type' => 'text', 181 'options' => false, 182 'placeholder' => 'License key provided by Tansa.', 183 'helper' => '', 184 'supplemental' => 'Please set the correct licenseKey. This value is unique to each deployment environment.', 185 'default' => '' 186 ) 187 ); 188 189 foreach( $fields as $field ){ 190 global $settingsMenuSlugId; 191 add_settings_field( $field['uid'], $field['label'], 'field_callback', $settingsMenuSlugId, $field['section'], $field ); 192 register_setting( $settingsMenuSlugId, $field['uid'] ); 193 } 194 } 195 196 function field_callback( $arguments ) { 197 //printf(json_encode($arguments)); 198 $value = get_option( $arguments['uid'] ); // Get the current value, if there is one 199 if( !$value ) { // If no value exists 200 $value = $arguments['default']; // Set to our default 201 } 202 203 // Check which type of field we want 204 switch( $arguments['type'] ){ 205 case 'text': // If it is a text field 206 printf( '<input name="%1$s" id="%1$s" type="%2$s" placeholder="%3$s" title="%3$s" value="%4$s" class="regular-text" />', $arguments['uid'], $arguments['type'], $arguments['placeholder'], $value ); 207 break; 208 case 'textarea': // If it is a textarea 209 printf( '<textarea name="%1$s" id="%1$s" placeholder="%2$s" rows="5" cols="50">%3$s</textarea>', $arguments['uid'], $arguments['placeholder'], $value ); 210 break; 211 case 'select': // If it is a select dropdown 212 if( ! empty ( $arguments['options'] ) && is_array( $arguments['options'] ) ){ 213 $options_markup = ’; 214 foreach( $arguments['options'] as $key => $label ){ 215 $options_markup .= sprintf( '<option value="%s" %s>%s</option>', $key, selected( $value, $key, false ), $label ); 216 } 217 printf( '<select name="%1$s" id="%1$s">%2$s</select>', $arguments['uid'], $options_markup ); 218 } 219 break; 220 } 221 222 // If there is help text 223 if( $helper = $arguments['helper'] ){ 224 printf( '<span class="helper"> %s</span>', $helper ); // Show it 225 } 226 227 // If there is supplemental text 228 if( $supplimental = $arguments['supplemental'] ){ 229 printf( '<p class="description">%s</p>', $supplimental ); // Show it 230 } 231 } 232 233 function tansa_plugin_settings_page() { 234 include 'settings.php'; 235 }
Note: See TracChangeset
for help on using the changeset viewer.