ID:1683160
 
Resolved
Skins that used hyphens in ID names did not function properly. Hyphens are now correctly stripped from the translated skin, and the client's byond() function strips them out when looking up controls as well.
BYOND Version:507
Operating System:Windows 8 64-bit
Web Browser:Chrome 37.0.2062.120
Applies to:Webclient
Status: Resolved (507.1260)

This issue has been resolved.
Version 507.1259

What's suppose to happen:

Clicking the - button will create a "minimize" effect by causing chat-label, mini-button (the one with "-" in it), output, and chat-input to have their is-visible parameter set to false.



Additionally, mini-button2 now has its is-visible parameter set to true. It is placed in the bottom left-hand corner of the screen.


However, in the web client it does not do this for all of the elements. Here, I am about to click mini-button.


Here, you can see the result. It only changes output and you can't see the mini-button2.


Here's the code that changes everything:
mob
player
var
miniChat = 0

verb
MiniChat()
set hidden = 1
if(miniChat)
winset(usr, "main.mini-button", "is-visible=true")
winset(usr, "main.mini-button2", "is-visible=false")
winset(usr, "main.chat-label", "is-visible=true")
winset(usr, "main.output", "is-visible=true")
winset(usr, "main.chat-input", "is-visible=true")
miniChat = 0
return

if(!miniChat)
winset(usr, "main.mini-button", "is-visible=false")
winset(usr, "main.mini-button2", "is-visible=true")
winset(usr, "main.chat-label", "is-visible=false")
winset(usr, "main.output", "is-visible=false")
winset(usr, "main.chat-input", "is-visible=false")
miniChat = 1
return
Looks like the problem is actually the dashes in the control names. winset() and output() don't seem to work on controls with dashes in their names in the Webclient.
I'll add something to the skin translator and lookup that converts dashes to camel case.

But it should be noted that non-identifier characters were in fact never meant to be considered part of a control's ID (with the exception of the "window.control" scheme, and even that is being phased out). To be honest I made a big mistake in 4.0 letting anything other than alphanumerics and underscores be used for an ID without throwing an error.
Lummox JR resolved issue with message:
Skins that used hyphens in ID names did not function properly. Hyphens are now correctly stripped from the translated skin, and the client's byond() function strips them out when looking up controls as well.