{"action":"created","issue":{"url":"https://api.github.com/repos/evennia/evennia/issues/613","labels_url":"https://api.github.com/repos/evennia/evennia/issues/613/labels{/name}","comments_url":"https://api.github.com/repos/evennia/evennia/issues/613/comments","events_url":"https://api.github.com/repos/evennia/evennia/issues/613/events","html_url":"https://github.com/evennia/evennia/issues/613","id":48168997,"number":613,"title":"Webclient improvements","user":{"login":"Kelketek","id":1099483,"avatar_url":"https://avatars.githubusercontent.com/u/1099483?v=3","gravatar_id":"","url":"https://api.github.com/users/Kelketek","html_url":"https://github.com/Kelketek","followers_url":"https://api.github.com/users/Kelketek/followers","following_url":"https://api.github.com/users/Kelketek/following{/other_user}","gists_url":"https://api.github.com/users/Kelketek/gists{/gist_id}","starred_url":"https://api.github.com/users/Kelketek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kelketek/subscriptions","organizations_url":"https://api.github.com/users/Kelketek/orgs","repos_url":"https://api.github.com/users/Kelketek/repos","events_url":"https://api.github.com/users/Kelketek/events{/privacy}","received_events_url":"https://api.github.com/users/Kelketek/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/evennia/evennia/labels/task","name":"task","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2014-11-08T15:32:58Z","updated_at":"2015-06-11T13:22:10Z","closed_at":null,"body":"I noticed that while we've talked about this frequently, we don't actually have an issue in for it yet.\r\n\r\nThe webclient works as a pretty decent proof of concept, and it can even be used by the casual user. However, there's a good deal of room for improvement, especially now that we have access to OOB.\r\n\r\nHere are a few things that should be added:\r\n\r\n1. Share login session with Django. If you're logged into Django, the web client should log you into your player automatically.\r\n2. Play a sound (can be toggled off) and make some indication in the title that a new message has arrived. This is possibly the most important thing in terms of immediate practicality-- on the game I ran, this was the feature that allowed many users to stay with the webclient, and not bother downloading their own.\r\n3. Modularity. There should be a way to hook tabs or windows into the client so that coders can implement their own custom plugins without having to remake the GUI from scratch. This is going to be the bulk of the task.\r\n4. Saving user preferences. The webclient at this point will have enough features that its configuration state should be savable for the player."},"comment":{"url":"https://api.github.com/repos/evennia/evennia/issues/comments/111133741","html_url":"https://github.com/evennia/evennia/issues/613#issuecomment-111133741","issue_url":"https://api.github.com/repos/evennia/evennia/issues/613","id":111133741,"user":{"login":"Griatch","id":294267,"avatar_url":"https://avatars.githubusercontent.com/u/294267?v=3","gravatar_id":"","url":"https://api.github.com/users/Griatch","html_url":"https://github.com/Griatch","followers_url":"https://api.github.com/users/Griatch/followers","following_url":"https://api.github.com/users/Griatch/following{/other_user}","gists_url":"https://api.github.com/users/Griatch/gists{/gist_id}","starred_url":"https://api.github.com/users/Griatch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Griatch/subscriptions","organizations_url":"https://api.github.com/users/Griatch/orgs","repos_url":"https://api.github.com/users/Griatch/repos","events_url":"https://api.github.com/users/Griatch/events{/privacy}","received_events_url":"https://api.github.com/users/Griatch/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T13:22:10Z","updated_at":"2015-06-11T13:22:10Z","body":"There is some work done (not yet online) on a new webclient. This one is based on a javascript component (`evennia.js`)  that relays incoming text data to a javascript function. These functions can be simply added to (modularity) but just importing one's own javascript module and append one's function to the relevant object dictionary mapping from `evennia.js`. \r\n\r\nWhile not ready for prime time yet, the webclient component I'm toying with currently gives the dev the ability to use any js gui toolkit (I use Foundation for now) and just mark up their containers with `class=` markers that `evennia.js` recognizes. The component comes with a few convenience functions so far, like a function to relay data to a specified class (accessed with something like `msg(\"Text\", ooc=(\"divclass\", \"textarea\")` as well as single- and multiple-line input fields with mud-like history handling. \r\n.\r\nGriatch\r\n"}}