Skip to content
Merged
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
3 changes: 3 additions & 0 deletions src/static/js/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ var chat = (function()
},
stickToScreen: function(fromInitialCall) // Make chat stick to right hand side of screen
{
if(pad.settings.hideChat){
return;
}
chat.show();
isStuck = (!isStuck || fromInitialCall);
$('#chatbox').hide();
Expand Down
8 changes: 5 additions & 3 deletions src/static/js/pad.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,15 @@ function randomString()
var getParameters = [
{ name: "noColors", checkVal: "true", callback: function(val) { settings.noColors = true; $('#clearAuthorship').hide(); } },
{ name: "showControls", checkVal: "true", callback: function(val) { $('#editbar').css('display', 'flex') } },
{ name: "showChat", checkVal: "true", callback: function(val) { $('#chaticon').show(); } },
{ name: "showChat", checkVal: null, callback: function(val) { if(val==="false"){settings.hideChat = true;chat.hide();$('#chaticon').hide();} } },
{ name: "showLineNumbers", checkVal: "false", callback: function(val) { settings.LineNumbersDisabled = true; } },
{ name: "useMonospaceFont", checkVal: "true", callback: function(val) { settings.useMonospaceFontGlobal = true; } },
// If the username is set as a parameter we should set a global value that we can call once we have initiated the pad.
{ name: "userName", checkVal: null, callback: function(val) { settings.globalUserName = decodeURIComponent(val); clientVars.userName = decodeURIComponent(val); } },
// If the userColor is set as a parameter, set a global value to use once we have initiated the pad.
{ name: "userColor", checkVal: null, callback: function(val) { settings.globalUserColor = decodeURIComponent(val); clientVars.userColor = decodeURIComponent(val); } },
{ name: "rtl", checkVal: "true", callback: function(val) { settings.rtlIsTrue = true } },
{ name: "alwaysShowChat", checkVal: "true", callback: function(val) { chat.stickToScreen(); } },
{ name: "alwaysShowChat", checkVal: "true", callback: function(val) { if(!settings.hideChat) chat.stickToScreen(); } },
{ name: "chatAndUsers", checkVal: "true", callback: function(val) { chat.chatAndUsers(); } },
{ name: "lang", checkVal: null, callback: function(val) { window.html10n.localize([val, 'en']); createCookie('language', val); } }
];
Expand All @@ -92,7 +92,7 @@ function getParams()
// Tries server enforced options first..
for(var i = 0; i < getParameters.length; i++)
{
var setting = getParameters[i];
var setting = getParameters[i];
var value = clientVars.padOptions[setting.name];
if(value.toString() === setting.checkVal)
{
Expand Down Expand Up @@ -286,6 +286,8 @@ function handshake()
$('#chaticon').hide();
$('#options-chatandusers').parent().hide();
$('#options-stickychat').parent().hide();
}else{
if(!settings.hideChat) $('#chaticon').show();
}

$("body").addClass(clientVars.readonly ? "readonly" : "readwrite")
Expand Down
7 changes: 6 additions & 1 deletion tests/frontend/helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,19 @@ var helper = {};
opts = _.defaults(cb, opts);
}

// if opts.params is set we manipulate the URL to include URL parameters IE ?foo=Bah.
if(opts.params){
var encodedParams = "?" + $.param(opts.params);
}

//clear cookies
if(opts.clearCookies){
helper.clearSessionCookies();
}

if(!padName)
padName = "FRONTEND_TEST_" + helper.randomString(20);
$iframe = $("<iframe src='/p/" + padName + "'></iframe>");
$iframe = $("<iframe src='/p/" + padName + (encodedParams || '') + "'></iframe>");

//clean up inner iframe references
helper.padChrome$ = helper.padOuter$ = helper.padInner$ = null;
Expand Down
37 changes: 37 additions & 0 deletions tests/frontend/specs/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,41 @@ describe("Chat messages and UI", function(){
}, 10)
}, 10)
});

it("Checks showChat=false URL Parameter hides chat then when removed it shows chat", function(done) {
this.timeout(60000);
var inner$ = helper.padInner$;
var chrome$ = helper.padChrome$;

setTimeout(function(){ //give it a second to save the username on the server side
helper.newPad({ // get a new pad, but don't clear the cookies
clearCookies: false,
params:{
showChat: "false"
}, cb: function(){
var chrome$ = helper.padChrome$;
var chaticon = chrome$("#chaticon");
// chat should be hidden.
expect(chaticon.is(":visible")).to.be(false);


setTimeout(function(){ //give it a second to save the username on the server side
helper.newPad({ // get a new pad, but don't clear the cookies
clearCookies: false
, cb: function(){
var chrome$ = helper.padChrome$;
var chaticon = chrome$("#chaticon");
// chat should be visible.
expect(chaticon.is(":visible")).to.be(true);
done();
}
});
}, 1000);

}
});
}, 1000);

});

});