Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 44 additions & 12 deletions dist/doboard-widget-bundle.js

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions dist/doboard-widget-bundle.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/doboard-widget-bundle.min.js.map

Large diffs are not rendered by default.

7 changes: 3 additions & 4 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ let rename = require('gulp-rename');
let concat = require('gulp-concat');
let wrap = require('gulp-wrap');
let mergeStream = require('merge-stream');
let cssmin = require('gulp-cssmin');
let cleanCSS = require('gulp-clean-css');
let browserSync = require('browser-sync').create();


Expand Down Expand Up @@ -49,15 +49,14 @@ function minify_js() {

function processCSS() {
return gulp.src('styles/doboard-widget.css')
.pipe(cssmin())
.pipe(cleanCSS())
.pipe(wrap('let spotFixCSS = `<%= contents %>`;'))
.pipe(concat('css-as-js.js'))
.pipe(gulp.dest('temp/'))
.on('end', async () => {
const {deleteSync} = await import('del');
deleteSync('temp');
})
;
});
}

gulp.task('compress-js', gulp.series(bundle_src_js, minify_js));
Expand Down
2 changes: 1 addition & 1 deletion js/src/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ const logoutUserDoboard = async (projectToken) => {
session_id: sessionId,
};

const email = localStorage.getItem('spotfix_email') || '';
const email = getSpotfixEmail() || '';

if (email && email.includes('spotfix_')) {
data.project_token = projectToken;
Expand Down
9 changes: 4 additions & 5 deletions js/src/handlers.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

async function spotFixConfirmUserEmail(emailConfirmationToken, params) {
const result = await spotFixUserConfirmEmailDoboard(emailConfirmationToken);
// Save session data to LS
localStorage.setItem('spotfix_email', result.email);
// Save session data to LS
setSpotfixEmail(result.email);
localStorage.setItem('spotfix_session_id', result.sessionId);
localStorage.setItem('spotfix_user_id', result.userId);
localStorage.setItem('spotfix_widget_is_closed', '0');
Expand Down Expand Up @@ -213,7 +213,7 @@ function registerUser(taskDetails) {
} else if (response.sessionId) {
localStorage.setItem('spotfix_session_id', response.sessionId);
localStorage.setItem('spotfix_user_id', response.userId);
localStorage.setItem('spotfix_email', response.email);
setSpotfixEmail(response.email);
localStorage.setItem('spotfix_accounts', JSON.stringify(response.accounts));
spotfixIndexedDB.init();
localStorage.setItem('spotfix_widget_is_closed', '0');
Expand Down Expand Up @@ -253,7 +253,7 @@ function loginUser(taskDetails) {
if (response.sessionId) {
localStorage.setItem('spotfix_session_id', response.sessionId);
localStorage.setItem('spotfix_user_id', response.userId);
localStorage.setItem('spotfix_email', userEmail);
setSpotfixEmail(userEmail);
localStorage.setItem('spotfix_accounts', JSON.stringify(response.accounts));
checkLogInOutButtonsVisible();
localStorage.setItem('spotfix_widget_is_closed', '0');
Expand All @@ -276,7 +276,6 @@ function loginUser(taskDetails) {
function forgotPassword(userEmail) {
return (showMessageCallback) => forgotPasswordDoboard(userEmail)
.then((response) => {
console.log('response ', response);
if (response?.operation_status === 'SUCCESS') {
showMessageCallback('New password sent to email', 'notice');
const forgotPasswordForm = document.getElementById('doboard_task_widget-container-login-forgot-password-form');
Expand Down
34 changes: 34 additions & 0 deletions js/src/storage.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,3 +197,37 @@ function clearLocalstorageOnLogout () {
localStorage.setItem('spotfix_widget_is_closed', '1');
wsSpotfix.close();
}


/**
* Email validator for spotfix_email in localStorage
* @param {string} email
* @returns {boolean}
*/
function isValidSpotfixEmail(email) {
if (!email || typeof email !== 'string') return false;
if (email === 'undefined') return false;
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return emailRegex.test(email);
}

/**
*
* @returns {string|null}
*/
function getSpotfixEmail() {
const email = localStorage.getItem('spotfix_email');
return isValidSpotfixEmail(email) ? email : null;
}

/**
*
* @param {string} email
*/
function setSpotfixEmail(email) {
if (isValidSpotfixEmail(email)) {
localStorage.setItem('spotfix_email', email);
} else {
localStorage.removeItem('spotfix_email');
}
}
10 changes: 5 additions & 5 deletions js/src/widget.js
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ class CleanTalkWidgetDoboard {
document.querySelector('.doboard_task_widget-login-is-invalid').classList.remove('doboard_task_widget-hidden');
}
const sessionIdExists = !!localStorage.getItem('spotfix_session_id');
const email = localStorage.getItem('spotfix_email');
const email = getSpotfixEmail();
if (sessionIdExists && email && !email.includes('spotfix_')) {
const loginEl= document.querySelector('.doboard_task_widget-login');
loginEl?.classList?.add('doboard_task_widget-hidden');
Expand Down Expand Up @@ -592,7 +592,7 @@ class CleanTalkWidgetDoboard {
chevronBackDark: SpotFixSVGLoader.getAsDataURI('chevronBackDark'),
buttonCloseScreen: SpotFixSVGLoader.getAsDataURI('buttonCloseScreen'),
userName: 'Guest',
email: localStorage.getItem('spotfix_email') || '',
email: getSpotfixEmail() || '',
...this.srcVariables};
break;
case 'spot_menu':
Expand Down Expand Up @@ -658,7 +658,7 @@ class CleanTalkWidgetDoboard {
// highlight selected item during task creation
const selection = window.getSelection();
const sessionIdExists = !!localStorage.getItem('spotfix_session_id');
const email = localStorage.getItem('spotfix_email');
const email = getSpotfixEmail();

if (templateVariables.selectedText) {
document.querySelector('.spotfix_placeholder_title').style.display = 'none';
Expand Down Expand Up @@ -885,7 +885,7 @@ class CleanTalkWidgetDoboard {

if(user){
templateVariables.userName = user.name || 'Guest';
templateVariables.email = user.email || localStorage.getItem('spotfix_email') || '';
templateVariables.email = user.email || getSpotfixEmail() || '';
if(user?.avatar?.s) templateVariables.avatar = user?.avatar?.s;
}

Expand Down Expand Up @@ -1928,7 +1928,7 @@ async setUserMenuData() {
if (userData && userData.email) {
emailElement.innerText = userData.email;
} else {
const email = localStorage.getItem('spotfix_email') || '';
const email = getSpotfixEmail() || '';
emailElement.innerText = email.includes('spotfix_') ? '' : email;
}
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
"eslint-plugin-promise": "^6.1.1",
"gulp": "^4.0.2",
"gulp-babel": "^8.0.0",
"gulp-clean-css": "^4.3.0",
"gulp-concat": "^2.6.1",
"gulp-cssmin": "^0.2.0",
"gulp-rename": "^1.4.0",
"gulp-sourcemap": "^1.0.1",
"gulp-sourcemaps": "^2.6.5",
Expand Down
Loading