Merge branch 'Alys-communityGuidelines' into develop

This commit is contained in:
Tyler Renelle 2014-10-27 16:20:30 -06:00
commit b15e239601
43 changed files with 1313 additions and 32 deletions

View file

@ -0,0 +1,73 @@
var migrationName = '20140914_upgrade_admin_contrib_tiers';
var authorName = 'Alys'; // in case script author needs to know when their ...
var authorUuid = 'd904bd62-da08-416b-a816-ba797c9ee265'; //... own data is done
/**
* https://github.com/HabitRPG/habitrpg/issues/3801
* Convert Tier 8 contributors to Tier 9 (staff) (all current Tier 8s are admins).
* Convert Tier 7 contributors with admin flag to Tier 8 (moderators).
*/
var mongo = require('mongoskin');
var _ = require('lodash');
var dbUsers = mongo.db('localhost:27017/habitrpg?auto_reconnect').collection('users');
var query =
{ 'contributor.level':{$gte:7}, 'contributor.admin':true, 'migration': {$ne: migrationName} };
var fields = {'migration':1,
'contributor.admin':1,
'contributor.level':1,
'auth.local.username':1,
'profile.name':1,
};
var userResults = {}; // each key is a UUID, each value is a username;
// contains only the users changed
console.warn('Updating users...');
var progressCount = 1000;
var count = 0;
dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
if (err) { return exiting(1, 'ERROR! ' + err); }
if (!user) {
console.warn('All appropriate users found and modified.');
return displayData();
}
count++;
var set = {'migration': migrationName};
var inc = {'contributor.level':1, _v:1};
userResults[user._id] = user.profile.name;
dbUsers.update({_id:user._id}, {$set:set, $inc:inc});
if (count%progressCount == 0) console.warn(count + ' ' + user._id);
if (user._id == authorUuid) console.warn(authorName + ' processed');
if (user._id == '9' ) console.warn('lefnire' + ' processed');
});
function displayData() {
console.log('users modified:');
_.each(userResults, function(name, uuid) {
console.log(name);
});
console.warn('\n' + count +
' users processed (should be 11 according to the Hall)\n');
return exiting(0);
}
function exiting(code, msg) {
code = code || 0; // 0 = success
if (code && !msg) { msg = 'ERROR!'; }
if (msg) {
if (code) { console.error(msg); }
else { console.log( msg); }
}
process.exit(code);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -13,6 +13,11 @@
margin-bottom: 0.618em
line-height: 1.618em
.guidelines-not-accepted p
border: 1px solid #ccc
padding: 1em;
margin-bottom: 0.5em;
.chat-controls
> div
display: inline-block
@ -130,8 +135,7 @@ hrpg-contributor-label-mixin($hrpg-contributor-color)
.label-contributor-7
hrpg-contributor-label-mixin($color-contributor-seven)
.label-contributor-8
hrpg-contributor-label-mixin($color-contributor-staff)
// FOR NEW MOD LEVEL: line above will change from -staff to -mod
hrpg-contributor-label-mixin($color-contributor-mod)
.label-contributor-9
hrpg-contributor-label-mixin($color-contributor-staff)
.label-npc

View file

@ -0,0 +1,12 @@
Font license info
## Fontelico
Copyright (C) 2012 by Fontello project
Author: Crowdsourced, for Fontello project
License: SIL (http://scripts.sil.org/OFL)
Homepage: http://fontello.com

View file

@ -0,0 +1,75 @@
This webfont is generated by http://fontello.com open source project.
================================================================================
Please, note, that you should obey original font licences, used to make this
webfont pack. Details available in LICENSE.txt file.
- Usually, it's enough to publish content of LICENSE.txt file somewhere on your
site in "About" section.
- If your project is open-source, usually, it will be ok to make LICENSE.txt
file publically available in your repository.
- Fonts, used in Fontello, don't require to make clickable links on your site.
But any kind of additional authors crediting is welcome.
================================================================================
Comments on archive content
---------------------------
- /font/* - fonts in different formats
- /css/* - different kinds of css, for all situations. Should be ok with
twitter bootstrap. Also, you can skip <i> style and assign icon classes
directly to text elements, if you don't mind about IE7.
- demo.html - demo file, to show your webfont content
- LICENSE.txt - license info about source fonts, used to build your one.
- config.json - keeps your settings. You can import it back to fontello anytime,
to continue your work
Why so many CSS files ?
-----------------------
Because we like to fit all your needs :)
- basic file, <your_font_name>.css - is usually enougth, in contains @font-face
and character codes definition
- *-ie7.css - if you need IE7 support, but still don't wish to put char codes
directly into html
- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face
rules, but still wish to benefit of css generation. That can be very
convenient for automated assets build systems. When you need to update font -
no needs to manually edit files, just override old version with archive
content. See fontello source codes for example.
- *-embedded.css - basic css file, but with embedded WOFF font, to avoid
CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain.
We strongly recommend to resolve this issue by `Access-Control-Allow-Origin`
server headers. But if you ok with dirty hack - this file is for you. Note,
that data url moved to separate @font-face to avoid problems with <IE9, when
string is too long.
- animate.css - use it to get ideas about spinner rotation animation.
Attention for server setup
--------------------------
You MUST setup server to reply with proper `mime-types` for font files. In other
case, some browsers will fail to show fonts.
Usually, `apache` already has necessary settings, but `nginx` and other
webservers should be tuned. Here is list of mime types for our file extentions:
- `application/vnd.ms-fontobject` - eot
- `application/x-font-woff` - woff
- `application/x-font-ttf` - ttf
- `image/svg+xml` - svg

85
public/fontello/css/animation.css vendored Normal file
View file

@ -0,0 +1,85 @@
/*
Animation example, for spinners
*/
.animate-spin {
-moz-animation: spin 2s infinite linear;
-o-animation: spin 2s infinite linear;
-webkit-animation: spin 2s infinite linear;
animation: spin 2s infinite linear;
display: inline-block;
}
@-moz-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-webkit-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-o-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@-ms-keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
-moz-transform: rotate(0deg);
-o-transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
-o-transform: rotate(359deg);
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}

11
public/fontello/css/fontelico-codes.css vendored Normal file
View file

@ -0,0 +1,11 @@
.icon-crown:before { content: '\e800'; } /* '' */
.icon-crown-plus:before { content: '\e801'; } /* '' */
.icon-crown-minus:before { content: '\e802'; } /* '' */
.icon-spin6:before { content: '\e804'; } /* '' */
.icon-spin5:before { content: '\e805'; } /* '' */
.icon-spin4:before { content: '\e806'; } /* '' */
.icon-spin3:before { content: '\e807'; } /* '' */
.icon-spin2:before { content: '\e808'; } /* '' */
.icon-spin1:before { content: '\e809'; } /* '' */
.icon-marquee:before { content: '\e80a'; } /* '' */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,11 @@
.icon-crown { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.icon-crown-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.icon-crown-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.icon-spin5 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.icon-spin2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.icon-spin1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
.icon-marquee { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }

22
public/fontello/css/fontelico-ie7.css vendored Normal file
View file

@ -0,0 +1,22 @@
[class^="icon-"], [class*=" icon-"] {
font-family: 'fontelico';
font-style: normal;
font-weight: normal;
/* fix buttons height */
line-height: 1em;
/* you can be more comfortable with increased icons size */
/* font-size: 120%; */
}
.icon-crown { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe800;&nbsp;'); }
.icon-crown-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe801;&nbsp;'); }
.icon-crown-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe802;&nbsp;'); }
.icon-spin6 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }
.icon-spin5 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe805;&nbsp;'); }
.icon-spin4 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe806;&nbsp;'); }
.icon-spin3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe807;&nbsp;'); }
.icon-spin2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe808;&nbsp;'); }
.icon-spin1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe809;&nbsp;'); }
.icon-marquee { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe80a;&nbsp;'); }

62
public/fontello/css/fontelico.css vendored Normal file
View file

@ -0,0 +1,62 @@
@font-face {
font-family: 'fontelico';
src: url('../font/fontelico.eot?7274479');
src: url('../font/fontelico.eot?7274479#iefix') format('embedded-opentype'),
url('../font/fontelico.woff?7274479') format('woff'),
url('../font/fontelico.ttf?7274479') format('truetype'),
url('../font/fontelico.svg?7274479#fontelico') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontelico';
src: url('../font/fontelico.svg?7274479#fontelico') format('svg');
}
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: "fontelico";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* you can be more comfortable with increased icons size */
font-size: 120%;
/* Uncomment for 3D effect */
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-crown:before { content: '\e800'; } /* '' */
.icon-crown-plus:before { content: '\e801'; } /* '' */
.icon-crown-minus:before { content: '\e802'; } /* '' */
.icon-spin6:before { content: '\e804'; } /* '' */
.icon-spin5:before { content: '\e805'; } /* '' */
.icon-spin4:before { content: '\e806'; } /* '' */
.icon-spin3:before { content: '\e807'; } /* '' */
.icon-spin2:before { content: '\e808'; } /* '' */
.icon-spin1:before { content: '\e809'; } /* '' */
.icon-marquee:before { content: '\e80a'; } /* '' */

276
public/fontello/demo.html Normal file
View file

@ -0,0 +1,276 @@
<!DOCTYPE html>
<html>
<head><!--[if lt IE 9]><script language="javascript" type="text/javascript" src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<meta charset="UTF-8"><style>/*
* Bootstrap v2.2.1
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover,
a:active {
outline: 0;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
body {
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 20px;
color: #333;
background-color: #fff;
}
a {
color: #08c;
text-decoration: none;
}
a:hover {
color: #005580;
text-decoration: underline;
}
.row {
margin-left: -20px;
*zoom: 1;
}
.row:before,
.row:after {
display: table;
content: "";
line-height: 0;
}
.row:after {
clear: both;
}
[class*="span"] {
float: left;
min-height: 1px;
margin-left: 20px;
}
.container,
.navbar-static-top .container,
.navbar-fixed-top .container,
.navbar-fixed-bottom .container {
width: 940px;
}
.span12 {
width: 940px;
}
.span11 {
width: 860px;
}
.span10 {
width: 780px;
}
.span9 {
width: 700px;
}
.span8 {
width: 620px;
}
.span7 {
width: 540px;
}
.span6 {
width: 460px;
}
.span5 {
width: 380px;
}
.span4 {
width: 300px;
}
.span3 {
width: 220px;
}
.span2 {
width: 140px;
}
.span1 {
width: 60px;
}
[class*="span"].pull-right,
.row-fluid [class*="span"].pull-right {
float: right;
}
.container {
margin-right: auto;
margin-left: auto;
*zoom: 1;
}
.container:before,
.container:after {
display: table;
content: "";
line-height: 0;
}
.container:after {
clear: both;
}
p {
margin: 0 0 10px;
}
.lead {
margin-bottom: 20px;
font-size: 21px;
font-weight: 200;
line-height: 30px;
}
small {
font-size: 85%;
}
h1 {
margin: 10px 0;
font-family: inherit;
font-weight: bold;
line-height: 20px;
color: inherit;
text-rendering: optimizelegibility;
}
h1 small {
font-weight: normal;
line-height: 1;
color: #999;
}
h1 {
line-height: 40px;
}
h1 {
font-size: 38.5px;
}
h1 small {
font-size: 24.5px;
}
body {
margin-top: 90px;
}
.header {
position: fixed;
top: 0;
left: 50%;
margin-left: -480px;
background-color: #fff;
border-bottom: 1px solid #ddd;
padding-top: 10px;
z-index: 10;
}
.footer {
color: #ddd;
font-size: 12px;
text-align: center;
margin-top: 20px;
}
.footer a {
color: #ccc;
text-decoration: underline;
}
.the-icons {
font-size: 14px;
line-height: 24px;
}
.switch {
position: absolute;
right: 0;
bottom: 10px;
color: #666;
}
.switch input {
margin-right: 0.3em;
}
.codesOn .i-name {
display: none;
}
.codesOn .i-code {
display: inline;
}
.i-code {
display: none;
}
</style>
<link rel="stylesheet" href="css/fontelico.css">
<link rel="stylesheet" href="css/animation.css"><!--[if IE 7]><link rel="stylesheet" href="css/fontelico-ie7.css"><![endif]-->
<script>
function toggleCodes(on) {
var obj = document.getElementById('icons');
if (on) {
obj.className += ' codesOn';
} else {
obj.className = obj.className.replace(' codesOn', '');
}
}
</script>
</head>
<body>
<div class="container header">
<h1>
fontelico
<small>font demo</small>
</h1>
<label class="switch">
<input type="checkbox" onclick="toggleCodes(this.checked)">show codes
</label>
</div>
<div id="icons" class="container">
<div class="row">
<div title="Code: 0xe800" class="the-icons span3"><i class="icon-crown"></i> <span class="i-name">icon-crown</span><span class="i-code">0xe800</span></div>
<div title="Code: 0xe801" class="the-icons span3"><i class="icon-crown-plus"></i> <span class="i-name">icon-crown-plus</span><span class="i-code">0xe801</span></div>
<div title="Code: 0xe802" class="the-icons span3"><i class="icon-crown-minus"></i> <span class="i-name">icon-crown-minus</span><span class="i-code">0xe802</span></div>
<div title="Code: 0xe804" class="the-icons span3"><i class="icon-spin6 animate-spin"></i> <span class="i-name">icon-spin6</span><span class="i-code">0xe804</span></div>
</div>
<div class="row">
<div title="Code: 0xe805" class="the-icons span3"><i class="icon-spin5 animate-spin"></i> <span class="i-name">icon-spin5</span><span class="i-code">0xe805</span></div>
<div title="Code: 0xe806" class="the-icons span3"><i class="icon-spin4 animate-spin"></i> <span class="i-name">icon-spin4</span><span class="i-code">0xe806</span></div>
<div title="Code: 0xe807" class="the-icons span3"><i class="icon-spin3 animate-spin"></i> <span class="i-name">icon-spin3</span><span class="i-code">0xe807</span></div>
<div title="Code: 0xe808" class="the-icons span3"><i class="icon-spin2 animate-spin"></i> <span class="i-name">icon-spin2</span><span class="i-code">0xe808</span></div>
</div>
<div class="row">
<div title="Code: 0xe809" class="the-icons span3"><i class="icon-spin1 animate-spin"></i> <span class="i-name">icon-spin1</span><span class="i-code">0xe809</span></div>
<div title="Code: 0xe80a" class="the-icons span3"><i class="icon-marquee"></i> <span class="i-name">icon-marquee</span><span class="i-code">0xe80a</span></div>
</div>
</div>
<div class="container footer">Generated by <a href="http://fontello.com">fontello.com</a></div>
</body>
</html>

Binary file not shown.

View file

@ -0,0 +1,21 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2014 by original authors @ fontello.com</metadata>
<defs>
<font id="fontelico" horiz-adv-x="1000" >
<font-face font-family="fontelico" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="crown" unicode="&#xe800;" d="m419 822c-39 0-71-32-71-72 0-40 32-72 71-72 39 0 74 32 74 72 0 40-35 72-74 72z m-48-222c-40-119-101-152-101-152s-52 146-109 232c-23-52-47-86-96-100-1-44 51-208 55-290l601 0c2 79 55 256 55 288-38 16-85 51-96 102-63-86-109-232-109-232s-61 33-101 152c-27-13-77-13-99 0z m-297 222c-40 0-74-32-74-72 0-40 34-72 74-72 39 0 70 32 70 72 0 40-31 72-70 72z m47-603l0-119 600 0c0 43 0 81 0 119z m644 603c-40 0-72-32-72-72 0-40 32-72 72-72 40 0 72 32 72 72 0 40-32 72-72 72z" horiz-adv-x="837" />
<glyph glyph-name="crown-plus" unicode="&#xe801;" d="m419 822c-39 0-71-32-71-72 0-40 32-72 71-72 39 0 74 32 74 72 0 40-35 72-74 72z m-48-222c-40-119-101-152-101-152s-52 146-109 232c-23-52-47-86-96-100-1-44 51-208 55-290l362 0 0 72 248 0c5 72 35 158 46 216-38 16-85 51-96 102-63-86-109-232-109-232s-61 33-101 152c-27-13-77-13-99 0z m-297 222c-40 0-74-32-74-72 0-40 34-72 74-72 39 0 70 32 70 72 0 40-31 72-70 72z m47-603l0-119 230 0 0 110 131 0 0 9z m644 603c-40 0-72-32-72-72 0-40 32-72 72-72 40 0 72 32 72 72 0 40-32 72-72 72z m-196-816c-37 0-107 0-146 0 0 31 0 102 0 138 49 0 94 0 146 0 0 49 0 98 0 146 24 0 85 0 138 0 0-46 0-95 0-146 46 0 93 0 146 0 0-45 0-101 0-138-43 0-98 0-146 0 0-48 0-103 0-146-52 0-99 0-138 0 0 52 0 123 0 146z" horiz-adv-x="853" />
<glyph glyph-name="crown-minus" unicode="&#xe802;" d="m419 822c-39 0-71-32-71-72 0-40 32-72 71-72 39 0 74 32 74 72 0 40-35 72-74 72z m-48-222c-40-119-101-152-101-152s-52 146-109 232c-23-52-47-86-96-100-1-44 51-208 55-290l601 0c2 79 55 256 55 288-38 16-85 51-96 102-63-86-109-232-109-232s-61 33-101 152c-27-13-77-13-99 0z m-297 222c-40 0-74-32-74-72 0-40 34-72 74-72 39 0 70 32 70 72 0 40-31 72-70 72z m47-603l0-119 230 0 0 110 370 0 0 9z m644 603c-40 0-72-32-72-72 0-40 32-72 72-72 40 0 72 32 72 72 0 40-32 72-72 72z m-342-816c0 32 0 106 0 143 123 0 152 0 430 0 0-46 0-105 0-143-113 0-333 0-430 0z" horiz-adv-x="853" />
<glyph glyph-name="spin6" unicode="&#xe804;" d="m855 9c-189-190-520-172-705 13-190 190-200 494-28 695 11 13 21 26 35 34 36 23 85 18 117-13 30-31 35-76 16-112-5-9-9-15-16-22-140-151-145-379-8-516 153-153 407-121 542 34 106 122 142 297 77 451-83 198-305 291-510 222l0 1c236 82 492-24 588-252 71-167 37-355-72-493-11-15-23-29-36-42z" horiz-adv-x="1000" />
<glyph glyph-name="spin5" unicode="&#xe805;" d="m462 850c-6 0-11-5-11-11l0-183 0 0c0-6 5-11 11-11l69 0c1 0 1 0 1 0 7 0 12 5 12 11l0 183 0 0c0 6-5 11-12 11l-69 0c0 0 0 0-1 0z m250-47c-4 1-8-2-10-5l-91-158 0 0c-4-6-2-13 4-16l60-35c0 0 0 0 0 0 6-3 13-1 16 4l91 158c3 6 2 13-4 16l-61 35c-1 1-3 1-5 1z m-428-2c-2 0-4-1-6-2l-61-35c-5-3-7-10-4-16l91-157c0 0 0 0 0 0 3-6 10-8 16-5l61 35c5 4 7 11 4 16l-91 157c0 1 0 1 0 1-2 4-6 6-10 6z m620-163c-2 0-4 0-6-1l-157-91c0 0 0 0 0 0-6-3-8-10-5-16l35-61c4-5 11-7 16-4l157 91c1 0 1 0 1 0 6 3 7 10 4 16l-35 61c-2 3-6 5-10 5z m-810-4c-5 0-9-2-11-6l-35-61c-3-5-1-12 4-15l158-92 0 0c6-3 13-1 16 5l35 60c0 0 0 0 0 0 3 6 1 13-4 16l-158 91c-2 1-4 2-5 2z m712-235l0 0c-6 0-11-5-11-11l0-69c0-1 0-1 0-1 0-7 5-12 11-12l183 0 0 0c6 0 11 5 11 12l0 69c0 0 0 0 0 1 0 6-5 11-11 11l-183 0z m-794-5l0 0c-7 0-12-5-12-12l0-69c0 0 0 0 0-1 0-6 5-11 12-11l182 0 0 0c6 0 11 5 11 11l0 69c0 1 0 1 0 1 0 7-5 12-11 12l-182 0z m772-153c-4 0-8-2-10-6l-34-60c-1 0-1 0-1 0-3-6-1-13 4-16l158-91c6-3 13-2 16 4l35 61c3 5 1 12-4 15l-158 91 0 0c-2 1-4 2-6 2z m-566-5c-1 0-3 0-5-1l-157-91c0 0-1 0-1 0-5-3-7-11-4-16l35-61c3-5 10-7 16-4l157 91c0 0 0 0 0 0 6 3 8 10 5 16l-35 61c-3 3-7 5-11 5z m468-121c-2 0-4 0-6-1l-61-35c-5-4-7-11-4-16l91-157c0-1 0-1 0-1 3-6 11-7 16-4l61 35c5 3 7 10 4 16l-91 157c0 0 0 0 0 0-2 4-6 6-10 6z m-367-3c-4 1-8-2-10-5l-91-158c-3-6-1-13 4-16l61-35c5-3 12-1 15 4l92 158 0 0c3 6 1 13-5 16l-60 34c0 1 0 1 0 1-2 1-4 1-6 1z m149-57c-7 0-12-5-12-11l0-183 0 0c0-6 5-11 12-11l69 0c0 0 0 0 1 0 6 0 11 5 11 11l0 183 0 0c0 6-5 11-11 11l-69 0c-1 0-1 0-1 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin4" unicode="&#xe806;" d="m498 850c-114 0-228-39-320-116l0 0c173 140 428 130 588-31 134-134 164-332 89-495-10-29-5-50 12-68 21-20 61-23 84 0 3 3 12 15 15 24 71 180 33 393-112 539-99 98-228 147-356 147z m-409-274c-14 0-29-5-39-16-3-3-13-15-15-24-71-180-34-393 112-539 185-185 479-195 676-31l0 0c-173-140-428-130-589 31-134 134-163 333-89 495 11 29 6 50-12 68-11 11-27 17-44 16z" horiz-adv-x="1001" />
<glyph glyph-name="spin3" unicode="&#xe807;" d="m494 850c-266 0-483-210-494-472-1-19 13-20 13-20l84 0c16 0 19 10 19 18 10 199 176 358 378 358 107 0 205-45 273-118l-58-57c-11-12-11-27 5-31l247-50c21-5 46 11 37 44l-58 227c-2 9-16 22-29 13l-65-60c-89 91-214 148-352 148z m409-508c-16 0-19-10-19-18-10-199-176-358-377-358-108 0-205 45-274 118l59 57c10 12 10 27-5 31l-248 50c-21 5-46-11-37-44l58-227c2-9 16-22 30-13l64 60c89-91 214-148 353-148 265 0 482 210 493 473 1 18-13 19-13 19l-84 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin2" unicode="&#xe808;" d="m46 144l0 0c0 0-1 0-1 0-8 18-15 37-21 55-6 19-11 38-15 58-19 99-8 203 35 298 3 6 10 8 15 5 1 0 2 0 2-1l0 0 80-59c5-3 6-9 4-14-5-12-9-25-12-38-4-12-7-26-9-39-11-67-3-137 23-201 2-5 0-10-4-13l0 0-80-56c-5-4-12-3-16 3-1 0-1 1-1 2l0 0z m120 574l0 0c0 1 0 1 0 1 15 13 30 25 46 37 16 11 33 22 51 31 89 50 192 72 297 60 6-1 10-6 10-13 0-1-1-1-1-2l0 0-31-94c-2-5-8-8-13-7-13 0-27 0-40 0-14-1-27-2-40-4-68-11-133-40-186-84-4-3-10-3-14 0l0 0-79 58c-5 3-6 11-2 16 0 0 1 1 2 1l0 0z m588 65l0 0c0 0 1 0 1 0 17-10 34-21 50-32 16-12 31-25 46-38 74-69 127-160 148-262 2-6-2-12-9-13-1 0-1 0-2 0l0 0-100 1c-5 0-10 4-11 9-3 13-8 26-12 38-5 12-10 25-17 36-31 61-78 113-137 150-5 3-6 8-5 13l0 0 31 92c2 6 9 9 15 7 1 0 2-1 2-1l0 0z m244-535l0 0c0 0 0 0 0 0-4-20-9-39-15-57-7-19-14-37-22-55-44-92-114-170-205-221-6-3-13-1-16 4 0 1-1 2-1 2l0 0-30 94c-2 6 1 12 6 14 11 7 22 15 32 23 11 9 21 18 30 27 49 48 84 109 101 176 2 5 6 8 11 8l0 0 98-1c6 0 11-5 11-11 0-1 0-2 0-3l0 0z m-438-395l0 0c0 0 0 0 0 0-20-2-40-3-60-3-20 0-40 1-59 4-102 12-198 54-276 125-5 4-5 11 0 16 0 0 1 1 1 1l0 0 81 58c5 3 12 2 16-2 10-8 20-16 32-23 11-7 22-14 34-20 62-31 131-45 200-41 6 0 10-3 12-8l0 0 29-92c2-6-1-12-7-14-1-1-2-1-3-1l0 0z" horiz-adv-x="1000" />
<glyph glyph-name="spin1" unicode="&#xe809;" d="m496 850c-176 0-331-90-421-226-18-27-33-55-46-85-12-29-21-60-28-92 0 0 0-1 0-1l0 0 0 0c0-1 0-2 0-2 0-7 5-12 11-12l101 0c5 0 10 4 11 9 29 113 109 206 214 253 20 10 41 17 63 23 31 7 62 11 95 11l0 0 0 0 0 0c25 0 50-2 74-7 5-1 10-2 14-3 6-1 10-3 14-4l0 0c5-1 11 1 13 6l51 87c0 0 1 1 1 2 2 6-1 13-7 15-22 7-43 13-65 17-5 1-9 1-13 2-27 5-54 7-82 7l0 0 0 0z m327-114c-5 0-9-2-11-6l-50-87c-3-4-2-10 2-14 29-29 54-63 73-101 4-7 7-14 11-22 19-46 30-97 30-151l0 0 0 0c0-77-22-149-62-209-7-11-15-23-24-34-9-10-18-20-28-30l0 0 0 0 0 0c-4-4-5-10-2-14l50-87c0-1 1-2 2-3 4-5 11-5 16-1 58 52 104 117 134 190 6 14 11 29 15 44 14 46 21 94 21 144 0 108-34 209-92 291-11 16-23 31-37 46-13 14-26 28-41 41l0 0c-1 1-1 1-2 1-2 1-4 2-5 2z m-811-468l0 0c-1 0-2 0-3 0-6-1-10-8-9-14 34-166 149-302 302-366 30-12 61-21 93-28 32-6 66-10 100-10l0 0 0 0c40 0 79 5 117 14 7 1 14 3 22 5 6 2 13 5 20 7 1 0 2 1 3 1 6 3 8 10 4 16l-50 87c-3 5-8 7-13 6-14-4-28-7-42-9-3-1-6-1-8-2-18-2-35-3-53-3l0 0 0 0c-128 0-242 63-311 160-1 0-1 0-1 0-13 19-25 40-35 61-10 21-18 43-24 65-1 6-6 10-11 10l-101 0z" horiz-adv-x="1000" />
<glyph glyph-name="marquee" unicode="&#xe80a;" d="m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z" horiz-adv-x="1000" />
</font>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Binary file not shown.

View file

@ -8,6 +8,7 @@ habitrpg.controller("HallHeroesCtrl", ['$scope', '$rootScope', 'User', 'Notifica
$scope.hero = Hero.get({uid:uuid});
}
$scope.saveHero = function(hero) {
$scope.hero.contributor.admin = ($scope.hero.contributor.level > 7) ? true : false;
hero.$save(function(){
Notification.text("User updated");
$scope.hero = undefined;

View file

@ -42,10 +42,32 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$
// styling helpers
$scope.userLevelStyle = function(user,style){
style = style || '';
if(user && user.backer && user.backer.npc)
style += ' label-npc';
var npc = (user && user.backer && user.backer.npc) ? user.backer.npc : '';
var level = (user && user.contributor && user.contributor.level) ? user.contributor.level : '';
style += $scope.userLevelStyleFromLevel(level,npc,style)
return style;
}
$scope.userAdminGlyphiconStyle = function(user,style){
style = style || '';
if(user && user.contributor && user.contributor.level)
style += ' label-contributor-'+user.contributor.level;
style += $scope.userAdminGlyphiconStyleFromLevel(user.contributor.level,style)
return style;
}
$scope.userLevelStyleFromLevel = function(level,npc,style){
style = style || '';
if(npc)
style += ' label-npc';
if(level)
style += ' label-contributor-'+level;
return style;
}
$scope.userAdminGlyphiconStyleFromLevel = function(level,style){
style = style || '';
if(level)
if(level==8)
style += ' glyphicon glyphicon-star'; // moderator
if(level==9)
style += ' glyphicon icon-crown'; // staff
return style;
}
@ -100,6 +122,10 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$
$rootScope.set({'flags.newStuff':false});
}
$rootScope.acceptCommunityGuidelines = function() {
$rootScope.set({'flags.communityGuidelinesAccepted':true});
}
$rootScope.notPorted = function(){
alert(window.env.t('notPorted'));
}

View file

@ -69,7 +69,8 @@
"app.css",
"bower_components/pnotify/jquery.pnotify.default.css",
"bower_components/pnotify/jquery.pnotify.default.icons.css",
"bower_components/habitrpg-shared/dist/habitrpg-shared.css"
"bower_components/habitrpg-shared/dist/habitrpg-shared.css",
"fontello/css/fontelico.css"
]
},
"static": {

View file

@ -71,7 +71,7 @@ var UserSchema = new Schema({
},
contributor: {
level: Number, // 1-7, see https://trello.com/c/wkFzONhE/277-contributor-gear
level: Number, // 1-9, see https://trello.com/c/wkFzONhE/277-contributor-gear https://github.com/HabitRPG/habitrpg/issues/3801
admin: Boolean,
sudo: Boolean,
text: String, // Artisan, Friend, Blacksmith, etc
@ -116,7 +116,8 @@ var UserSchema = new Schema({
rebirthEnabled: {type: Boolean, 'default': false},
freeRebirth: {type: Boolean, 'default': false},
levelDrops: {type:Schema.Types.Mixed, 'default':{}},
chatRevoked: Boolean
chatRevoked: Boolean,
communityGuidelinesAccepted: {type: Boolean, 'default': false}
},
history: {
exp: Array, // [{date: Date, value: Number}], // big peformance issues if these are defined
@ -458,10 +459,6 @@ UserSchema.methods.unlink = function(options, cb) {
module.exports.schema = UserSchema;
module.exports.model = mongoose.model("User", UserSchema);
mongoose.model("User").find({'contributor.admin':true},function(err,mods){
module.exports.mods = _.map(mods,function(m){
var lvl = (m.backer && m.backer.npc) ? 'label-npc' :
'label-contributor-' + m.contributor.level;
return ' <span class="label ' + lvl + '">'+ m.profile.name + '</span>'
});
mongoose.model("User").find({$query:{'contributor.admin':true}, $orderby:{'contributor.level':-1, 'backer.npc':-1, 'profile.name':1}},function(err,mods){
module.exports.mods = mods
});

View file

@ -20,7 +20,7 @@ router.get('/', i18n.getUserLanguage, middleware.locals, function(req, res) {
// -------- Marketing --------
var pages = ['front', 'privacy', 'terms', 'api', 'features', 'videos', 'contact', 'plans', 'new-stuff'];
var pages = ['front', 'privacy', 'terms', 'api', 'features', 'videos', 'contact', 'plans', 'new-stuff', 'community-guidelines'];
_.each(pages, function(name){
router.get('/static/' + name, i18n.getUserLanguage, middleware.locals, function(req, res) {
@ -34,4 +34,4 @@ router.get('/static/extensions', function(req, res) {
res.redirect('http://habitrpg.wikia.com/wiki/App_and_Extension_Integrations');
});
module.exports = router;
module.exports = router;

View file

@ -1,3 +1,17 @@
//div.chat-form.guidelines-not-accepted(ng-if='!user.flags.communityGuidelinesAccepted')
// p If you would like to post messages in the Tavern or any party or guild chat, please first read our
// |&nbsp;
// a(target='_blank', href='/static/community-guidelines')=env.t('communityGuidelines')
// |&nbsp;and then click the button below to indicate that you accept them.
// .chat-controls
// div
// button.btn.btn-warning(ng-click='acceptCommunityGuidelines()')=env.t('iAcceptCommunityGuidelines')
// .chat-buttons
// button(type="button", ng-click='sync(group)', tooltip=env.t('toolTipMsg'))
// span.glyphicon.glyphicon-refresh
//form.chat-form(ng-if='user.flags.communityGuidelinesAccepted' ng-submit='postChat(group,message.content)')
//////////// When we want to block the ability to chat until the Community Guidelines have been accepted, delete the one line immediately below this comment and un-comment all lines above.
form.chat-form(ng-submit='postChat(group,message.content)')
div(ng-controller='AutocompleteCtrl')
textarea.form-control(rows=4, ui-keypress='{13:"postChat(group,message.content)"}', ng-model='message.content', updateinterval='250', flag='@', at-user, auto-complete)
@ -11,4 +25,4 @@ form.chat-form(ng-submit='postChat(group,message.content)')
.chat-buttons
input(type='submit', value=env.t('sendChat'), ng-class='{disabled: _sending == true}')
button(type="button", ng-click='sync(group)', tooltip=env.t('toolTipMsg'))
span.glyphicon.glyphicon-refresh
span.glyphicon.glyphicon-refresh

View file

@ -1,9 +1,10 @@
li.chat-message(ng-repeat='message in group.chat track by message.id', ng-class=':: {highlight: isUserMentioned(user,message) || message.uuid=="system", "own-message": user._id == message.uuid}')
.scrollable-message
span(ng-if='::message.uuid!="system"')
span(ng-if='::message.user')
a.label.label-default.chat-message.hidden-label
span {{::message.user}}
| &nbsp;
span {{::message.user}}&nbsp;
span(ng-class='userAdminGlyphiconStyleFromLevel(message.contributor.level)')
// this invisible username label is here to push the message text far enough right that the visible label can be floated to this point without covering up any of the text
markdown(ng-model='::message.text')
| -
span.muted.time(from-now='::message.timestamp')
@ -13,5 +14,6 @@ li.chat-message(ng-repeat='message in group.chat track by message.id', ng-class=
| &nbsp;
a(ng-if=':: user.contributor.admin || message.uuid == user.id', ng-click='deleteChatMessage(group, message)')
span.glyphicon.glyphicon-trash(tooltip=env.t('delete'))
a.label.label-default.chat-message(ng-if=':: message.user', class='float-label', ng-class=':: {"label-npc": message.backer.npc, "label-contributor-{{message.contributor.level}}":message.contributor.level}', ng-click='clickMember(message.uuid, true)')
a.label.label-default.chat-message(ng-if=':: message.user', class='float-label', ng-class='userLevelStyleFromLevel(message.contributor.level, message.backer.npc, style)', ng-click='clickMember(message.uuid, true)')
span(tooltip='{{::contribText(message.contributor, message.backer)}}') {{::message.user}}&nbsp;
span(ng-class='userAdminGlyphiconStyleFromLevel(message.contributor.level)')

View file

@ -28,15 +28,13 @@ script(type='text/ng-template', id='partials/options.social.hall.heroes.html')
label=env.t('contribLevel')
input.form-control(type='number', step="any", ng-model='hero.contributor.level')
small=env.t('contribHallText')
|&nbsp;
a(target='_blank', href='https://trello.com/c/wkFzONhE/277-contributor-gear')=env.t('moreDetails')
|,&nbsp;
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues/3801')=env.t('moreDetails2')
.form-group
textarea.form-control(cols=5, placeholder=env.t('contributions'), ng-model='hero.contributor.contributions')
include ../../shared/formatting-help
.form-group
.checkbox
label
input(type='checkbox', ng-model='hero.contributor.admin')
=env.t('admin')
hr
.form-group
@ -88,7 +86,7 @@ script(type='text/ng-template', id='partials/options.social.hall.heroes.html')
span(ng-if='hero.contributor.admin',popover=env.t('gamemaster'),popover-trigger='mouseenter',popover-placement='right')
a.label.label-default(ng-class='userLevelStyle(hero)', ng-click='clickMember(hero._id, true)')
| {{hero.profile.name}}&nbsp;
span.glyphicon.glyphicon-star
span(ng-class='userAdminGlyphiconStyle(hero)')
span(ng-if='!hero.contributor.admin')
a.label.label-default(ng-class='userLevelStyle(hero)', ng-click='clickMember(hero._id, true)') {{hero.profile.name}}
td(ng-if='user.contributor.admin') {{hero._id}}

View file

@ -29,6 +29,9 @@
h3.panel-title=env.t('resources')
.panel-body
table.table.table-striped
tr
td
a(target='_blank', href='/static/community-guidelines')=env.t('communityGuidelines')
tr
td
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Board:The_Archery_-_LFG')=env.t('lfgPosts')
@ -123,11 +126,9 @@
!=env.t('legSeventh')
tr
td
a.label.label-contributor-7(ng-click='toggleUserTier($event)')=env.t('moderator') + ' (' + env.t('guardian') + ')'
// FOR NEW MOD LEVEL: line above will change from -7 to -8
a.label.label-contributor-8(ng-click='toggleUserTier($event)')=env.t('moderator') + ' (' + env.t('guardian') + ')'
div
p=env.t('guardianText')
// FOR NEW MOD LEVEL: edit guardianText to remove this: "Not all Tier 7 contributors are moderators. All current moderators are listed below the Tavern chat box."
tr
td
a.label.label-contributor-9(ng-click='toggleUserTier($event)')=env.t('staff') + ' (' + env.t('heroic') + ')'
@ -145,6 +146,19 @@
h3=env.t('tavernTalk')
include ./chat-box
.alert.alert-info.alert-sm
!= ' ' + env.t('tavernAlert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues/2760" target="_blank">' + env.t('tavernAlert2') + '</a>.<br />' + env.t('moderatorIntro1') + env.mods + env.t('moderatorIntro2')
!= ' ' + env.t('tavernAlert1') + ' <a href="https://github.com/HabitRPG/habitrpg/issues/2760" target="_blank">' + env.t('tavernAlert2') + '</a>.<br />' + env.t('moderatorIntro1')
span(ng-repeat='mod in env.mods')
| &nbsp;
span(ng-if='mod.contributor.admin',popover=env.t('gamemaster'),popover-trigger='mouseenter',popover-placement='right')
a.label.label-default(ng-class='userLevelStyle(mod)', ng-click='clickMember(mod._id, true)')
{{mod.profile.name}}&nbsp;
span(ng-class='userAdminGlyphiconStyle(mod)')
p
=env.t('communityGuidelinesRead1')
| &nbsp;
a(target='_blank', href='/static/community-guidelines')=env.t('communityGuidelines')
| &nbsp;
=env.t('communityGuidelinesRead2')
ul.list-unstyled.tavern-chat
include ./chat-message

View file

@ -38,6 +38,8 @@ footer.footer(ng-controller='FooterCtrl')
.col-sm-3
h4=env.t('footerCommunity')
ul.list-unstyled
li
a(target='_blank', href='/static/community-guidelines')=env.t('communityGuidelines')
li
a(target='_blank', href='https://github.com/HabitRPG/habitrpg/issues/2760')=env.t('communityBug')
li

View file

@ -9,4 +9,4 @@ include ./drops
include ./classes
include ./quests
include ./rebirth
include ./limited
include ./limited

View file

@ -0,0 +1,509 @@
extends ./layout
block extraHead
style.
.pull-left { margin-right: 20px }
.peopleList { list-style-type: none }
.listColumns2 {
width: 50%;
columns: 2;
-moz-columns: 2;
-webkit-columns: 2;
// 2-column list: Allow a single ul/ol list to split into two columns.
// (Will not work in IE. Not important enough to make a workaround.)
}
block vars
- var layoutEnv = env
block title
title HabitRPG &VerticalLine;&nbsp;
=env.t('communityGuidelines')
block content
.row
.col-md-12
.page-header
h1=env.t('communityGuidelines')
p.pagemeta
|Last updated&nbsp;
=env.t('September')
|&nbsp;14&comma; 2014
h2=env.t('commGuideHeadingWelcome')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/intro.png', alt='')
p=env.t('commGuidePara001')
p=env.t('commGuidePara002')
p=env.t('commGuidePara003')
p=env.t('commGuidePara004')
h2=env.t('commGuideHeadingBeing')
p=env.t('commGuidePara005')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/beingHabitican.png', alt='')
ul
li
strong=env.t('commGuideList01A')
|&nbsp;
=env.t('commGuideList01Apart2')
li
strong=env.t('commGuideList01B')
|&nbsp;
=env.t('commGuideList01Bpart2')
li
strong=env.t('commGuideList01C')
|&nbsp;
=env.t('commGuideList01Cpart2')
li
strong=env.t('commGuideList01D')
|&nbsp;
=env.t('commGuideList01Dpart2')
h2=env.t('commGuideHeadingMeet')
p=env.t('commGuidePara006')
p
strong=env.t('commGuidePara007')
p
strong=env.t('commGuidePara008')
p
strong=env.t('commGuidePara009')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/staff.png', alt='')
ul(class='pull-left list-unstyled')
li
strong Lefnire (Tyler Renelle)
li
strong redphoenix (caffeinatedvee&nbsp;
=env.t('commGuidePara009a')
|, veeeeeee&nbsp;
=env.t('commGuidePara009b')
|) (Vicky Hsu)
li
strong Lemoness (Siena Leslie)
li
strong SabreCat (Sabe)
li
strong paglias (Matteo)
p=env.t('commGuidePara010')
p
strong=env.t('commGuidePara011')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/moderators.png', alt='')
ul(class='pull-left list-unstyled')
li
strong Bailey (It's Bailey&nbsp;
=env.t('commGuidePara011a')
|)
li
strong Ryan (deilann&nbsp;
=env.t('commGuidePara011b')
|)
li
strong Alys (LadyAlys&nbsp;
=env.t('commGuidePara011c')
|)
li
strong Breadstrings
li
strong Megan
li
strong Daniel the Bard
p=env.t('commGuidePara012')
|&nbsp;(
a(href='mailto:leslie@habitrpg.com') leslie&commat;habitrpg&period;com
|).
p=env.t('commGuidePara013')
p=env.t('commGuidePara014')
|&nbsp;
em Slappybag, litenull, Shaner, Bobbyroberts99, wc8
h2=env.t('commGuideHeadingPublicSpaces')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/publicSpaces.png', alt='')
p=env.t('commGuidePara015')
p=env.t('commGuidePara016')
p
strong=env.t('commGuidePara017')
|&nbsp;
=env.t('commGuidePara017part2')
ul
li
strong=env.t('commGuideList02A')
li
strong=env.t('commGuideList02B')
|&nbsp;
=env.t('commGuideList02Bpart2')
li
strong=env.t('commGuideList02C')
|&nbsp;
=env.t('commGuideList02Cpart2')
li
strong=env.t('commGuideList02D')
|&nbsp;
=env.t('commGuideList02Dpart2')
li
strong=env.t('commGuideList02E')
|&nbsp;
=env.t('commGuideList02Epart2')
li
strong=env.t('commGuideList02F')
|&nbsp;
=env.t('commGuideList02Fpart2')
li
strong=env.t('commGuideList02G')
|&nbsp;
=env.t('commGuideList02Gpart2')
li
strong=env.t('commGuideList02H')
|&nbsp;
=env.t('commGuideList02Hpart2')
|&nbsp;
a(href='mailto:mods@habitrpg.com') mods&commat;habitrpg&period;com
|&nbsp;
=env.t('commGuideList02Hpart3')
p
strong=env.t('commGuidePara019')
|&nbsp;
=env.t('commGuidePara019part2')
p=env.t('commGuidePara021')
h3=env.t('commGuideHeadingTavern')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/tavern.png', alt='')
p=env.t('commGuidePara022')
p
strong=env.t('commGuidePara023')
p=env.t('commGuidePara024')
|&nbsp;
strong=env.t('commGuidePara024part2')
|&nbsp;
=env.t('commGuidePara024part3')
p
strong=env.t('commGuidePara027')
|&nbsp;
=env.t('commGuidePara027part2')
h3=env.t('commGuideHeadingPublicGuilds')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/publicGuilds.png', alt='')
p
strong=env.t('commGuidePara029')
|&nbsp;
=env.t('commGuidePara029part2')
|&nbsp;
strong=env.t('commGuidePara029part3')
p
strong=env.t('commGuidePara031')
|&nbsp;
=env.t('commGuidePara031part2')
p
strong=env.t('commGuidePara033')
|&nbsp;
=env.t('commGuidePara033part2')
|&nbsp;
a(href='mailto:mods@habitrpg.com') mods&commat;habitrpg&period;com
|&nbsp;
=env.t('commGuidePara033part3')
p
strong=env.t('commGuidePara035')
|&nbsp;
=env.t('commGuidePara035part2')
p
strong=env.t('commGuidePara037')
h3=env.t('commGuideHeadingBackCorner')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/backCorner.png', alt='')
p
strong=env.t('commGuidePara038')
|&nbsp;
=env.t('commGuidePara038part2')
p=env.t('commGuidePara039')
|&nbsp;
strong=env.t('commGuidePara039part2')
|&nbsp;
=env.t('commGuidePara039part3')
h3=env.t('commGuideHeadingTrello')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/trello.png', alt='')
p
strong=env.t('commGuidePara040')
|&nbsp;
=env.t('commGuidePara040part2')
|&nbsp;
strong=env.t('commGuidePara040part3')
|&nbsp;
=env.t('commGuidePara040part4')
p
strong=env.t('commGuidePara041')
ul
li=env.t('The')
|&nbsp;
strong=env.t('commGuideList03A')
|&nbsp;
=env.t('commGuideList03Apart2')
li=env.t('The')
|&nbsp;
strong=env.t('commGuideList03B')
|&nbsp;
=env.t('commGuideList03Bpart2')
li=env.t('The')
|&nbsp;
strong=env.t('commGuideList03C')
|&nbsp;
=env.t('commGuideList03Cpart2')
li=env.t('The')
|&nbsp;
strong=env.t('commGuideList03D')
|&nbsp;
=env.t('commGuideList03Dpart2')
li=env.t('The')
|&nbsp;
strong=env.t('commGuideList03E')
|&nbsp;
=env.t('commGuideList03Epart2')
p
strong=env.t('commGuidePara042')
|&nbsp;
=env.t('commGuidePara042part2')
h3=env.t('commGuideHeadingGitHub')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/github.gif', alt='')
p
strong=env.t('commGuidePara043')
|&nbsp;
=env.t('commGuidePara043part2')
|&nbsp;
strong=env.t('commGuidePara043part3')
|&nbsp;
=env.t('commGuidePara043part4')
p
strong=env.t('commGuidePara044')
ul(class='listColumns2 peopleList')
li lefnire (Tyler)
li Alys
li benmanley (Pixel)
li colegleason (Cole)
li deilann (Ryan)
li djuretic
li Fandekasp
li Lemoness
li litenull
li paglias
li SabreCat
li Sinza-
li snicker
li thepeopleseason
li wc8
li zakkain
h3=env.t('commGuideHeadingWiki')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/wiki.png', alt='')
p
strong=env.t('commGuidePara045')
|&nbsp;
=env.t('commGuidePara045part2')
p=env.t('commGuidePara046')
p
strong=env.t('commGuidePara047')
p=env.t('commGuidePara048')
ul
li=env.t('commGuideList04A')
li=env.t('commGuideList04B')
li=env.t('commGuideList04C')
li=env.t('commGuideList04D')
li=env.t('commGuideList04E')
li=env.t('commGuideList04F')
li=env.t('commGuideList04G')
li=env.t('commGuideList04H')
p
strong=env.t('commGuidePara049')
ul(class='peopleList')
li Breadstrings (bureaucrat)
li JiggerD
li LadyAlys
li LadyKatFrog
li Lefnire (bureaucrat)
p=env.t('commGuidePara018')
|:&nbsp;
em Bobbyroberts99 (founder and bureaucrat), wc8 (bureaucrat)
h2=env.t('commGuideHeadingInfractionsEtc')
h3=env.t('commGuideHeadingInfractions')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/infractions.png', alt='')
p=env.t('commGuidePara050')
p
strong=env.t('commGuidePara051')
|&nbsp;
=env.t('commGuidePara051part2')
h4=env.t('commGuideHeadingSevereInfractions')
p=env.t('commGuidePara052')
p=env.t('commGuidePara053')
ul
li=env.t('commGuideList05A')
li=env.t('commGuideList05B')
li=env.t('commGuideList05C')
li=env.t('commGuideList05D')
li=env.t('commGuideList05E')
h4=env.t('commGuideHeadingModerateInfractions')
p=env.t('commGuidePara054')
p=env.t('commGuidePara055')
ul
li=env.t('commGuideList06A')
|&nbsp;(
a(href='mailto:leslie@habitrpg.com') leslie&commat;habitrpg&period;com
|).
li=env.t('commGuideList06B')
li=env.t('commGuideList06C')
li=env.t('commGuideList06D')
h4=env.t('commGuideHeadingMinorInfractions')
p=env.t('commGuidePara056')
p=env.t('commGuidePara057')
ul
li=env.t('commGuideList07A')
li=env.t('commGuideList07B')
h3=env.t('commGuideHeadingConsequences')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/consequences.png', alt='')
p=env.t('commGuidePara058')
p
strong=env.t('commGuidePara059')
|&nbsp;
=env.t('commGuidePara059part2')
p
strong=env.t('commGuidePara060')
ul
li=env.t('commGuideList08A')
li=env.t('commGuideList08B')
li=env.t('commGuideList08C')
h4=env.t('commGuideHeadingSevereConsequences')
ul
li=env.t('commGuideList09A')
li=env.t('commGuideList09B')
li=env.t('commGuideList09C')
h4=env.t('commGuideHeadingModerateConsequences')
ul
li=env.t('commGuideList10A')
li=env.t('commGuideList10B')
li=env.t('commGuideList10C')
li=env.t('commGuideList10D')
li=env.t('commGuideList10E')
li=env.t('commGuideList10F')
h4=env.t('commGuideHeadingMinorConsequences')
ul
li=env.t('commGuideList11A')
li=env.t('commGuideList11B')
li=env.t('commGuideList11C')
li=env.t('commGuideList11D')
li=env.t('commGuideList11E')
h3=env.t('commGuideHeadingRestoration')
div(class='clearfix')
img(class='pull-left', src='/community-guidelines-images/restoration.png', alt='')
p=env.t('commGuidePara061')
|&nbsp;
strong=env.t('commGuidePara061part2')
p=env.t('commGuidePara062')
|&nbsp;
strong=env.t('commGuidePara062part2')
p
strong=env.t('commGuidePara063')
|&nbsp;
=env.t('commGuidePara063part2')
h2=env.t('commGuideHeadingContributing')
div(class='clearfix')
img(class='pull-right', src='/community-guidelines-images/contributing.png', alt='')
p=env.t('commGuidePara064')
ol
li=env.t('commGuideList12A')
li=env.t('commGuideList12B')
li=env.t('commGuideList12C')
li=env.t('commGuideList12D')
li=env.t('commGuideList12E')
li=env.t('commGuideList12F')
li=env.t('commGuideList12G')
p=env.t('commGuidePara065')
p=env.t('commGuidePara066')
ul
li
strong=env.t('commGuideList13A')
|&nbsp;
=env.t('commGuideList13Apart2')
li
strong=env.t('commGuideList13B')
|&nbsp;
=env.t('commGuideList13Bpart2')
li
strong=env.t('commGuideList13C')
|&nbsp;
=env.t('commGuideList13Cpart2')
li
strong=env.t('commGuideList13D')
|&nbsp;
=env.t('commGuideList13Dpart2')
h2=env.t('commGuideHeadingFinal')
p=env.t('commGuidePara067')
|&nbsp;(
a(href='mailto:leslie@habitrpg.com') leslie&commat;habitrpg&period;com
|)&nbsp;
=env.t('commGuidePara067part2')
p=env.t('commGuidePara068')
h2=env.t('commGuideHeadingLinks')
ul
li
a(href='https://habitrpg.com/#/options/groups/guilds/5481ccf3-5d2d-48a9-a871-70a7380cee5a' target='_blank')=env.t('commGuideLink01')
|:&nbsp;
=env.t('commGuideLink01description')
li
a(href='https://habitrpg.com/#/options/groups/guilds/426c2c1a-eed0-4997-9b73-d30fc1397688' target='_blank')=env.t('commGuideLink02')
|:&nbsp;
=env.t('commGuideLink02description')
li
a(href='http://habitrpg.wikia.com/wiki/HabitRPG_Wiki' target='_blank')=env.t('commGuideLink03')
|:&nbsp;
=env.t('commGuideLink03description')
li
a(href='https://github.com/HabitRPG/habitrpg' target='_blank')=env.t('commGuideLink04')
|:&nbsp;
=env.t('commGuideLink04description')
li
a(href='https://trello.com/b/EpoYEYod/habitrpg' target='_blank')=env.t('commGuideLink05')
|:&nbsp;
=env.t('commGuideLink05description')
li
a(href='https://trello.com/b/mXK3Eavg/habitrpg-mobile' target='_blank')=env.t('commGuideLink06')
|:&nbsp;
=env.t('commGuideLink06description')
li
a(href='https://trello.com/b/vwuE9fbO/habitrpg-pixel-art' target='_blank')=env.t('commGuideLink07')
|:&nbsp;
=env.t('commGuideLink07description')
li
a(href='https://trello.com/b/nnv4QIRX/habitrpg-quests' target='_blank')=env.t('commGuideLink08')
|:&nbsp;
=env.t('commGuideLink08description')
p
strong=env.t('commGuidePara069')
ul(class='listColumns2 peopleList')
li Breadstrings
li Draayder
li Kiwibot
li Leephon
li Lemoness
li Luciferian
li Revcleo
li Shaner
li Starsystemic
li UncommonCriminal

View file

@ -4,6 +4,7 @@ doctype html
html(ng-app='habitrpgStatic')
head
block extraHead
block title
title=env.t('titleIndex')