mirror of
https://github.com/twisterarmy/twister-html.git
synced 2025-02-04 19:14:14 +00:00
Merge pull request #308 from slr/tasty-group-messages
group messages UI
This commit is contained in:
commit
1ae1625ea3
@ -58,36 +58,16 @@
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.profile-card-buttons
|
||||
{
|
||||
.profile-card-buttons {
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.twister-user-info .profile-card-buttons {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.profile-card-buttons .direct-messages-with-user,
|
||||
.profile-card-buttons .mentions-from-user,
|
||||
.profile-card-buttons .follow,
|
||||
.profile-card-buttons .unfollow
|
||||
{
|
||||
display: inline;
|
||||
padding: 4px 12px;
|
||||
font-size: 12px;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
color: rgba( 0, 0, 0, .7 );
|
||||
background: rgba( 0, 0, 0, .1 );
|
||||
border: none;
|
||||
transition: all .2s linear;
|
||||
}
|
||||
|
||||
.profile-card-buttons .direct-messages-with-user:hover,
|
||||
.profile-card-buttons .mentions-from-user:hover
|
||||
{
|
||||
color: #fff;
|
||||
background: #45474d;
|
||||
}
|
||||
|
||||
.profile-card.forEdition
|
||||
{
|
||||
margin: 0 auto;
|
||||
@ -309,6 +289,35 @@ h2.profile-screen-name {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.profile-modal .modal-buttons {
|
||||
display: none;
|
||||
.group-messages-control .invite-form, .group-messages-control .secret-key {
|
||||
display: none;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form textarea {
|
||||
border: solid 1px rgba(0, 0, 0, .3);
|
||||
border-radius: 3px;
|
||||
vertical-align: middle;
|
||||
width: 73%;
|
||||
height: 20px;
|
||||
resize: none;
|
||||
margin: 0 4px;
|
||||
padding: 1px 4px;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form textarea:focus {
|
||||
border: solid 1px rgba(227, 79, 66, .5);
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form button {
|
||||
color: #DDD;
|
||||
background-color: #45474D;
|
||||
border: medium none;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form button:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
362
css/style.css
362
css/style.css
@ -96,28 +96,24 @@ h3
|
||||
************** BUTTONS ***************
|
||||
**************************************/
|
||||
|
||||
button
|
||||
{
|
||||
button {
|
||||
color: rgba(255, 255, 255, .8);
|
||||
background: #45474d;
|
||||
color: rgba( 255, 255, 255, .8 );
|
||||
border: none;
|
||||
padding: 5px 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:hover
|
||||
{
|
||||
button:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
button.disabled
|
||||
{
|
||||
button:disabled, button.disabled {
|
||||
opacity: .4;
|
||||
}
|
||||
|
||||
button.disabled:hover
|
||||
{
|
||||
color: rgba( 255, 255, 255, .8 );
|
||||
button:disabled:hover, button.disabled:hover {
|
||||
color: rgba(255, 255, 255, .8);
|
||||
}
|
||||
|
||||
button.follow, button.unfollow, .following-list button.private {
|
||||
@ -151,11 +147,32 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.b-buttons {
|
||||
text-align: right;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.b-buttons button {
|
||||
color: rgba(0, 0, 0, .7);
|
||||
background-color: rgba(0, 0, 0, .08);
|
||||
border: none;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
width: auto;
|
||||
padding: 4px 12px;
|
||||
transition: all .1s linear;
|
||||
}
|
||||
|
||||
.b-buttons button:hover {
|
||||
color: #FFF;
|
||||
background: #45474D;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
**************************** MENU *****
|
||||
**************** MENU ****************
|
||||
**************************************/
|
||||
.userMenu
|
||||
{
|
||||
|
||||
.userMenu {
|
||||
width: 900px;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
@ -164,12 +181,13 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
background: #45474d;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.userMenu.w1200 {
|
||||
width: 1200px;
|
||||
margin-left: -600px;
|
||||
}
|
||||
.userMenu:after
|
||||
{
|
||||
|
||||
.userMenu:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
@ -177,16 +195,14 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
height: 54px;
|
||||
background: url(../img/twister_mini.png) no-repeat right 5px;
|
||||
}
|
||||
.userMenu > ul
|
||||
{
|
||||
}
|
||||
.userMenu > ul > li
|
||||
{
|
||||
|
||||
.userMenu > ul > li {
|
||||
float: left;
|
||||
height: 40px;
|
||||
margin: 0;
|
||||
}
|
||||
.userMenu > ul > li > a
|
||||
{
|
||||
|
||||
.userMenu > ul > li > a {
|
||||
line-height: 40px;
|
||||
height: 40px;
|
||||
padding: 0 20px 0 45px;
|
||||
@ -198,115 +214,89 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
transition: all .2s linear;
|
||||
position: relative;
|
||||
}
|
||||
.userMenu li > a:hover
|
||||
{
|
||||
|
||||
.userMenu li:hover, .userMenu li:active {
|
||||
background-color: rgba(0, 0, 0 , .4);
|
||||
}
|
||||
|
||||
.userMenu li:hover > a, .userMenu li:active > a {
|
||||
text-decoration: none;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.current > a
|
||||
{
|
||||
|
||||
.userMenu li.current {
|
||||
background-color: #B43E34;
|
||||
}
|
||||
|
||||
.userMenu li.current > a {
|
||||
color: #fff;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.userMenu-home > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-home > a {
|
||||
background: url(../img/home.png) no-repeat 5px center;
|
||||
}
|
||||
.userMenu li.userMenu-home:hover > a
|
||||
{
|
||||
background: url(../img/home.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-home.current > a
|
||||
{
|
||||
background: url(../img/home.png) no-repeat 5px center #b43e34;
|
||||
}
|
||||
.userMenu li.userMenu-connections > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-connections > a {
|
||||
background: url(../img/connections.png) no-repeat 5px center;
|
||||
padding: 0 30px 0 20px;
|
||||
padding: 0 24px;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.userMenu-connections:hover > a
|
||||
{
|
||||
background: url(../img/connections.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-connections.current > a
|
||||
{
|
||||
background: url(../img/connections.png) no-repeat 5px center #b43e34;
|
||||
}
|
||||
.userMenu li.userMenu-network > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-network > a {
|
||||
background: url(../img/network.png) no-repeat 5px center;
|
||||
}
|
||||
.userMenu li.userMenu-network:hover > a
|
||||
{
|
||||
background: url(../img/network.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-network.current > a
|
||||
{
|
||||
background: url(../img/network.png) no-repeat 5px center #b43e34;
|
||||
}
|
||||
.userMenu li.userMenu-messages > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-messages > a {
|
||||
background: url(../img/messages.png) no-repeat center center;
|
||||
padding: 0 25px 0 35px;
|
||||
padding: 0 24px;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.userMenu-messages:hover > a
|
||||
{
|
||||
background: url(../img/messages.png) no-repeat center center rgba( 0, 0, 0 , .4 );
|
||||
|
||||
.userMenu li.userMenu-messages > a:empty {
|
||||
padding: 0 20px 0 30px;
|
||||
opacity: .7;
|
||||
}
|
||||
.userMenu li.userMenu-messages.current > a
|
||||
{
|
||||
background: url(../img/messages.png) no-repeat center center #b43e34;
|
||||
|
||||
.userMenu li.userMenu-groupmessages > a {
|
||||
background: url(../img/groupmessages.png) no-repeat center center;
|
||||
background-size: 22px 22px;
|
||||
padding: 0 24px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.userMenu li.userMenu-profile > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-profile > a {
|
||||
background: url(../img/profile.png) no-repeat 5px center;
|
||||
}
|
||||
.userMenu li.userMenu-profile:hover > a
|
||||
{
|
||||
background: url(../img/profile.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-profile.current > a
|
||||
{
|
||||
background: url(../img/profile.png) no-repeat 5px center #b43e34;
|
||||
}
|
||||
.userMenu li.userMenu-config
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-config {
|
||||
float: right;
|
||||
position: relative;
|
||||
margin-right: 40px;
|
||||
}
|
||||
.userMenu li.userMenu-search
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-search {
|
||||
float: right;
|
||||
position: relative;
|
||||
}
|
||||
.userMenu li.userMenu-config > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-search:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-config > a {
|
||||
background: url(../img/config.png) no-repeat 5px center;
|
||||
padding: 0 30px 0 45px;
|
||||
}
|
||||
.userMenu li.userMenu-config > a:after
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-config > a:after {
|
||||
content: "▼";
|
||||
position: absolute;
|
||||
font-size: 10px;
|
||||
transition: all .2 linear;
|
||||
}
|
||||
.userMenu li.userMenu-config:hover > a,
|
||||
.userMenu li.userMenu-config:active > a
|
||||
{
|
||||
background: url(../img/config.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-messages > a:empty
|
||||
{
|
||||
padding: 0 20px 0 30px;
|
||||
opacity: .7;
|
||||
}
|
||||
.wrapper
|
||||
{
|
||||
|
||||
.wrapper {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
background: #f8f5ee;
|
||||
@ -315,10 +305,12 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
z-index: 1;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
.wrapper.w1200 {
|
||||
width: 1200px;
|
||||
padding: 55px 7px 15px 7px;
|
||||
}
|
||||
|
||||
.dashboard.left {
|
||||
width: 320px;
|
||||
position: fixed;
|
||||
@ -332,8 +324,7 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
margin-left: 864px;
|
||||
}
|
||||
|
||||
.module
|
||||
{
|
||||
.module {
|
||||
border: solid 1px rgba( 69, 71, 77, .1 );
|
||||
background: #fff;
|
||||
}
|
||||
@ -342,8 +333,7 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
margin: 0 0 3%;
|
||||
}
|
||||
|
||||
.messages-qtd
|
||||
{
|
||||
.messages-qtd {
|
||||
position: absolute;
|
||||
background: #b43e34;
|
||||
color: #fff;
|
||||
@ -352,10 +342,11 @@ button.follow:hover, button.unfollow:hover, .following-list button.private:hover
|
||||
font-size: 8px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
.userMenu-connections .messages-qtd
|
||||
{
|
||||
|
||||
.userMenu-connections .messages-qtd {
|
||||
margin: 4px 0 0 10px;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
****************** CONFIG SUBMENU & SEARCH RESULTS *****
|
||||
*******************************************************/
|
||||
@ -954,10 +945,11 @@ ol.toptrends-list {
|
||||
transition: background .1s linear;
|
||||
-moz-transition: background .1s linear;
|
||||
}
|
||||
.post.new
|
||||
{
|
||||
background: #F7F8E0;
|
||||
|
||||
.post.new {
|
||||
background-color: #FFFFED;
|
||||
}
|
||||
|
||||
.post.open
|
||||
{
|
||||
margin: 10px 0;
|
||||
@ -997,10 +989,7 @@ ol.toptrends-list {
|
||||
background: #fefedf;
|
||||
}
|
||||
|
||||
.post-photo,
|
||||
.mini-profile-photo
|
||||
{
|
||||
margin: 5px;
|
||||
.post-photo, .mini-profile-photo {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
vertical-align: middle;
|
||||
@ -1008,14 +997,15 @@ ol.toptrends-list {
|
||||
height: 48px;
|
||||
overflow: hidden;
|
||||
border-radius: 20%;
|
||||
margin: 6px;
|
||||
/*transform: rotate( 45deg );*/
|
||||
}
|
||||
.post-photo img,
|
||||
.mini-profile-photo img
|
||||
{
|
||||
|
||||
.post-photo img, .mini-profile-photo img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.post-info span
|
||||
{
|
||||
vertical-align: top;
|
||||
@ -1038,18 +1028,18 @@ ol.toptrends-list {
|
||||
display: inline-block;
|
||||
letter-spacing: 0px;
|
||||
}
|
||||
.post-info-time
|
||||
{
|
||||
|
||||
.post-info-time {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
margin: 5px;
|
||||
margin: 4px 8px 0;
|
||||
opacity: .5;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.post-text {
|
||||
font-size: 13px;
|
||||
margin: 2px 10px 4px 60px;
|
||||
margin: 2px 16px 4px 60px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
@ -1059,11 +1049,11 @@ ol.toptrends-list {
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.post-context
|
||||
{
|
||||
.post-context {
|
||||
font-size: 11px;
|
||||
margin: 2px 10px 4px 60px;
|
||||
margin: 2px 16px 4px 60px;
|
||||
}
|
||||
|
||||
.post-text a,
|
||||
.post-context a,
|
||||
.mini-screen-name
|
||||
@ -1539,7 +1529,7 @@ ol.toptrends-list {
|
||||
}
|
||||
|
||||
.direct-messages-thread .post-text {
|
||||
margin: 2px 10px 4px 4px;
|
||||
margin: 2px 16px 4px 4px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
@ -1562,8 +1552,26 @@ ol.toptrends-list {
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-name {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-time {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-time .post-info-sent {
|
||||
float: right;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-text {
|
||||
margin: 2px 10px 4px 4px;
|
||||
margin: 2px 4px 4px 16px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-photo {
|
||||
@ -1580,6 +1588,98 @@ ol.toptrends-list {
|
||||
content: '\2714';
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** GM NEW GROUP SETUP MODAL ******
|
||||
**************************************/
|
||||
|
||||
.group-messages-new-group.modal-wrapper {
|
||||
height: auto; /*about 320px*/
|
||||
margin-top: -160px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content .module {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div {
|
||||
width: 100%;
|
||||
margin: 4px 0;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div:last-child button {
|
||||
margin: 8px 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content textarea {
|
||||
border: solid 1px rgba(0, 0, 0, .3);
|
||||
border-radius: 3px;
|
||||
width: 500px;
|
||||
height: 56px;
|
||||
resize: none;
|
||||
margin: 12px 16px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content textarea:focus {
|
||||
border: solid 1px rgba(227, 79, 66, .5);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** GM JOIN GROUP SETUP MODAL *****
|
||||
**************************************/
|
||||
|
||||
.group-messages-join-group.modal-wrapper {
|
||||
height: auto; /*about 360px*/
|
||||
margin-top: -240px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content .module {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div {
|
||||
width: 100%;
|
||||
margin: 4px 0;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div:last-child button {
|
||||
margin: 8px 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input {
|
||||
border: solid 1px rgba(0, 0, 0, .3);
|
||||
border-radius: 3px;
|
||||
width: 500px;
|
||||
margin: 12px 16px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input:focus {
|
||||
border: solid 1px rgba(227, 79, 66, .5);
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input[type='checkbox'] {
|
||||
display: inline;
|
||||
width: auto;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content .groups-list {
|
||||
height: 120px;
|
||||
overflow-y: auto;
|
||||
margin: 8px 8px 0;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*********** NEW USER MODAL ***********
|
||||
**************************************/
|
||||
@ -1692,6 +1792,7 @@ ol.toptrends-list {
|
||||
|
||||
.prompt-wrapper {
|
||||
background: #fff;
|
||||
font-size: 13px;
|
||||
z-index: 5;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
@ -1712,6 +1813,20 @@ ol.toptrends-list {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*********** CONFIRM POPUP ************
|
||||
**************************************/
|
||||
|
||||
.confirm-popup .message {
|
||||
text-align: center;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
.confirm-popup .modal-buttons {
|
||||
text-align: center;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** FOLLOWING-CONFIG PROMPT *******
|
||||
**************************************/
|
||||
@ -2098,6 +2213,7 @@ ul.dropdown-menu .active, ul.dropdown-menu .active a {
|
||||
.post-rt-reference .post-photo {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.post-rt-reference .post-photo img {
|
||||
@ -2111,7 +2227,7 @@ ul.dropdown-menu .active, ul.dropdown-menu .active a {
|
||||
|
||||
.post-rt-reference .post-text {
|
||||
font-size: 11px;
|
||||
margin: 2px 10px 4px 10px;
|
||||
margin: 2px 8px 4px 34px;
|
||||
}
|
||||
|
||||
.post-rt-reference .post-info-time {
|
||||
|
197
following.html
197
following.html
@ -36,7 +36,7 @@
|
||||
<li class="userMenu-home"><a href="home.html"><span class="selectable_theme theme_original label">Home</span></a></li>
|
||||
<li class="userMenu-network selectable_theme theme_original theme_nin"><a class="label" href="network.html">Network</a></li>
|
||||
<li class="userMenu-profile selectable_theme theme_original theme_nin"><a class="label" href="profile-edit.html">Profile</a></li>
|
||||
<li class="userMenu-config current">
|
||||
<li class="userMenu-config">
|
||||
<a class="userMenu-config-dropdown" href="#">
|
||||
<div class="config-menu dialog-modal">
|
||||
<div class="mini-profile-info selectable_theme theme_original">
|
||||
@ -49,7 +49,8 @@
|
||||
<a class="dropdown-menu-item" href="following.html">Following users</a>
|
||||
<a class="dropdown-menu-item" href="network.html">Network config</a>
|
||||
<a class="dropdown-menu-item" href="login.html">Change user</a>
|
||||
<a class="direct-messages selectable_theme theme_original" href="#">Direct Messages</a>
|
||||
<a class="dropdown-menu-item direct-messages selectable_theme theme_original theme_calm" href="#">Direct Messages</a>
|
||||
<a class="dropdown-menu-item groupmessages selectable_theme theme_original theme_calm" href="#">Group Messages</a>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
@ -63,6 +64,11 @@
|
||||
<span class="messages-qtd" style="display:none;">0</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="userMenu-groupmessages">
|
||||
<a href="#">
|
||||
<span class="messages-qtd" style="display:none;">0</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="userMenu-dhtindicator selectable_theme theme_calm"><a href="network.html"></a></li>
|
||||
|
||||
<!-- BUSCA -->
|
||||
@ -74,18 +80,7 @@
|
||||
<li><a href="#">Outro Fulano</a></li>
|
||||
<li><a href="#">Mais outro</a></li>
|
||||
</ul>
|
||||
<ul class="userMenu-search-profiles">
|
||||
<li id="search-profile-template" style="display: none;">
|
||||
<div class="mini-profile-info" data-screen-name="">
|
||||
<a href="#" class="open-profile-modal">
|
||||
<img class="mini-profile-photo" src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/>
|
||||
<span class="mini-screen-name">@<b></b></span>
|
||||
<span class="mini-profile-name"></span>
|
||||
</a>
|
||||
<button class="follow">Follow</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="userMenu-search-profiles"></ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -95,21 +90,21 @@
|
||||
<div class="wrapper">
|
||||
<!-- LADO ESQUERDO DE MÓDULOS INIT -->
|
||||
<div class="dashboard left">
|
||||
<!-- THEME NIN added sub-menu (mentions, messages and edit profile) -->
|
||||
<ul class="mini-profile-indicators selectable_theme theme_nin">
|
||||
<li class="userMenu-connections">
|
||||
<a href="#" title="Mentions"><span class="messages-qtd" style="display:none;">0</span><span>Mentions</span></a>
|
||||
</li>
|
||||
<li class="userMenu-groupmessages">
|
||||
<a href="#" title="Group Messages"><span class="messages-qtd" style="display:none;">0</span><span>Group Messages</span></a>
|
||||
</li>
|
||||
<li class="userMenu-messages">
|
||||
<a href="#" title="Direct Messages"><span class="messages-qtd" style="display:none;">0</span><span>Messages</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- PROFILE MODULE INIT -->
|
||||
<div class="module mini-profile selectable_theme theme_nin">
|
||||
<div class="mini-profile-info">
|
||||
<!-- THEME NIN added user menu (mentions, messages and edit profile) -->
|
||||
<ul class="mini-profile-indicators selectable_theme theme_nin">
|
||||
<li class="userMenu-connections">
|
||||
<a href="#" title="Mentions"><span class="messages-qtd" style="display:none;">0</span><span>Mentions</span></a>
|
||||
</li>
|
||||
<li class="userMenu-messages">
|
||||
<a href="#" title="Direct Messages"><span class="messages-qtd" style="display:none;">0</span><span>Messages</span></a>
|
||||
</li>
|
||||
<li class="userMenu-user">
|
||||
<a href="profile-edit.html" title="Edit profile"><span>Edit profile</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="mini-profile-photo"><img src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/></div>
|
||||
<a href="#" class="mini-profile-name open-profile-modal"></a>
|
||||
<span class="mini-profile-view">View</span>
|
||||
@ -177,6 +172,19 @@
|
||||
|
||||
<!-- TEMPLATES INIT -->
|
||||
<div id="templates" style="display:none;">
|
||||
<div id="search-profile-template">
|
||||
<li>
|
||||
<div class="mini-profile-info">
|
||||
<a class="open-profile-modal">
|
||||
<img class="mini-profile-photo" src="img/grayed_avatar_placeholder_24.png" alt="user-photo" />
|
||||
<span class="mini-screen-name">@<b></b></span>
|
||||
<span class="mini-profile-name"></span>
|
||||
</a>
|
||||
<button class="follow">Follow</button>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<!-- TEMPLATE DE WHO-TO-FOLLOW SUGGESTION -->
|
||||
<li id="follow-suggestion-template" class="twister-user">
|
||||
<div class="">
|
||||
@ -211,7 +219,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<li id="post-template" class="module post" data-time="">
|
||||
<div class="post-data" data-userpost="" data-content_to_rt="" data-content_to_sigrt=""
|
||||
data-screen-name="" data-id="" data-text="" data-text-mentions="">
|
||||
@ -247,8 +254,8 @@
|
||||
<textarea placeholder="Reply..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -293,12 +300,12 @@
|
||||
<div class="modal-wrapper">
|
||||
<div class="modal-header">
|
||||
<h3></h3>
|
||||
<span id="closeModal" class="modal-close cancel">×</span>
|
||||
<span id="closeModal" class="modal-close">×</span>
|
||||
<span class="modal-back"><</span>
|
||||
<span class="mark-all-as-read"></span>
|
||||
</div>
|
||||
<div class="modal-content"></div>
|
||||
<div class="modal-blackout cancel"></div>
|
||||
<div class="modal-blackout"></div>
|
||||
</div>
|
||||
|
||||
<div class="prompt-wrapper">
|
||||
@ -309,14 +316,22 @@
|
||||
<div class="modal-content"></div>
|
||||
</div>
|
||||
|
||||
<div id="confirm-popup-template">
|
||||
<div class="message"></div>
|
||||
<div class="modal-buttons">
|
||||
<button class="confirm"></button>
|
||||
<button class="cancel"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="reTwist-modal-template">
|
||||
<div class="post-area">
|
||||
<form class="post-area-new open">
|
||||
<textarea placeholder="New Post..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
<div class="modal-buttons">
|
||||
<span class="switch-mode">Switch to Reply</span>
|
||||
@ -333,8 +348,8 @@
|
||||
<div class="post-area-extras">
|
||||
<span class="switch-mode">Switch to Retransmit</span>
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -369,7 +384,10 @@
|
||||
<!-- cada li é uma mensagem -->
|
||||
<li id="dm-chat-template" class="module post message">
|
||||
<div class="post-photo"><img src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/></div>
|
||||
<a href="#" class="post-info-time" title="08/10/13 às 18:00"><span class="post-info-sent"></span> <span></span></a>
|
||||
<div class="post-info">
|
||||
<a class="post-info-name open-profile-modal"></a>
|
||||
<a class="post-info-time"><span class="post-info-sent"></span> <span></span></a>
|
||||
</div>
|
||||
<p class="post-text"></p>
|
||||
</li>
|
||||
|
||||
@ -378,13 +396,114 @@
|
||||
<textarea placeholder="New direct message..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="dm-submit disabled" disabled="true">send</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button title="Direct messages are encrypted, only you and receiver can read them" style="margin-right:7.5%;" class="dm-submit disabled" disabled="disabled">send</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- MODAL DE DIRECT MESSAGES INIT -->
|
||||
|
||||
<div id="group-messages-profile-modal-control-template">
|
||||
<div class="group-messages-control b-buttons">
|
||||
<button class="new">New group</button>
|
||||
<button class="join">Join group</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-messages-messages-modal-control-template">
|
||||
<div class="group-messages-control b-buttons">
|
||||
<button class="profile">Profile</button>
|
||||
<button class="invite">Invite peers</button>
|
||||
<button class="leave">Leave group</button>
|
||||
<div class="invite-form">
|
||||
<textarea></textarea><button disabled="disabled">Invite</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-profile-modal-template">
|
||||
<div class="profile-card" data-screen-name="">
|
||||
<div class="profile-card-main">
|
||||
<div class="profile-bio"></div>
|
||||
</div>
|
||||
<div class="profile-card-buttons group-messages-control b-buttons">
|
||||
<button class="direct-messages-with-user" disabled="disabled">Messages</button>
|
||||
<button class="invite" disabled="disabled">Invite peers</button>
|
||||
<button class="show-secret-key" disabled="disabled">Secret Key</button>
|
||||
<button class="leave" disabled="disabled">Leave group</button>
|
||||
<div class="invite-form">
|
||||
<textarea></textarea><button disabled="disabled">Invite</button>
|
||||
</div>
|
||||
<div class="secret-key"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="members"></div>
|
||||
</div>
|
||||
|
||||
<div id="group-profile-member-template">
|
||||
<div class="twister-user">
|
||||
<div>
|
||||
<a class="twister-user-name open-profile-modal">
|
||||
<img class="twister-user-photo" src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="twister-user-info" data-screen-name="">
|
||||
<a class="twister-user-name open-profile-modal">
|
||||
<span class="twister-user-full"></span>
|
||||
<span class="twister-user-tag"></span>
|
||||
</a>
|
||||
<div class="bio"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-messages-new-group-template">
|
||||
<div class="module">
|
||||
<div>
|
||||
<p class="label">Group description</p>
|
||||
<textarea class="description" placeholder="Describe group"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<p class="label">Peers to invite</p>
|
||||
<textarea class="invite" placeholder="Invite somebody"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<button class="create" disabled="disabled">Create</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-messages-join-group-template">
|
||||
<div class="module">
|
||||
<div>
|
||||
<p class="label">Select group(s)</p>
|
||||
<ul class="groups-list"></ul>
|
||||
</div>
|
||||
<div>
|
||||
<button class="join" disabled="disabled">Join</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="module">
|
||||
<div>
|
||||
<p class="label">Import secret key</p>
|
||||
<input class="secret-key-import" type="textbox" placeholder="52-characters secret" size="52" rows="1"></input>
|
||||
</div>
|
||||
<div>
|
||||
<p class="label">With group alias</p>
|
||||
<input class="username-import" type="textbox" placeholder="Type group alias here" size="16" rows="1"></input>
|
||||
</div>
|
||||
<div>
|
||||
<button class="import-secret-key" disabled="disabled">Import key</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="groups-list-item-template">
|
||||
<li>
|
||||
<input type="checkbox" /> <a class="twister-user-name open-profile-modal"></a> // <span class="description"></span>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<!-- MODAL DE PROFILE -->
|
||||
<div id="profile-modal-template">
|
||||
<!-- ÁREA DE PROFILE PHOTO INIT -->
|
||||
@ -418,7 +537,7 @@
|
||||
<li><a href="#"><span class="followers-count"> </span><span class="label">Followers</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="profile-card-buttons">
|
||||
<div class="profile-card-buttons b-buttons">
|
||||
<button class="follow" href="#">Follow</button>
|
||||
<button class="direct-messages-with-user" href="#">Direct Messages</button>
|
||||
<button class="mentions-from-user" href="#">Mentions</button>
|
||||
|
205
home.html
205
home.html
@ -54,8 +54,9 @@
|
||||
<a class="dropdown-menu-item" href="profile-edit.html">Setup account</a>
|
||||
<a class="dropdown-menu-item dropdown-menu-following" href="following.html">Following users</a>
|
||||
<a class="dropdown-menu-item" href="login.html">Change user</a>
|
||||
<a class="dropdown-menu-item promoted-posts-only selectable_theme theme_original" href="#">Switch to Promoted posts</a>
|
||||
<a class="direct-messages dropdown-menu-item selectable_theme theme_original" href="#">Direct Messages</a>
|
||||
<a class="dropdown-menu-item promoted-posts-only selectable_theme theme_original theme_calm" href="#">Switch to Promoted posts</a>
|
||||
<a class="dropdown-menu-item direct-messages selectable_theme theme_original theme_calm" href="#">Direct Messages</a>
|
||||
<a class="dropdown-menu-item groupmessages selectable_theme theme_original theme_calm" href="#">Group Messages</a>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
@ -69,6 +70,11 @@
|
||||
<span class="messages-qtd" style="display:none;">0</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="userMenu-groupmessages">
|
||||
<a href="#">
|
||||
<span class="messages-qtd" style="display:none;">0</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="userMenu-dhtindicator selectable_theme theme_calm"><a href="network.html"></a></li>
|
||||
|
||||
<!-- BUSCA -->
|
||||
@ -80,18 +86,7 @@
|
||||
<li><a href="#">Outro Fulano</a></li>
|
||||
<li><a href="#">Mais outro</a></li>
|
||||
</ul>
|
||||
<ul class="userMenu-search-profiles">
|
||||
<li id="search-profile-template" style="display: none;">
|
||||
<div class="mini-profile-info" data-screen-name="">
|
||||
<a href="#" class="open-profile-modal">
|
||||
<img class="mini-profile-photo" src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/>
|
||||
<span class="mini-screen-name">@<b></b></span>
|
||||
<span class="mini-profile-name"></span>
|
||||
</a>
|
||||
<button class="follow">Follow</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="userMenu-search-profiles"></ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@ -101,22 +96,21 @@
|
||||
<div class="wrapper">
|
||||
<!-- LADO ESQUERDO DE MÓDULOS INIT -->
|
||||
<div class="dashboard left">
|
||||
<!-- THEME NIN added sub-menu (mentions, messages and edit profile) -->
|
||||
<ul class="mini-profile-indicators selectable_theme theme_nin">
|
||||
<li class="userMenu-connections">
|
||||
<a href="#" title="Mentions"><span class="messages-qtd" style="display:none;">0</span><span>Mentions</span></a>
|
||||
</li>
|
||||
<li class="userMenu-groupmessages">
|
||||
<a href="#" title="Group Messages"><span class="messages-qtd" style="display:none;">0</span><span>Group Messages</span></a>
|
||||
</li>
|
||||
<li class="userMenu-messages">
|
||||
<a href="#" title="Direct Messages"><span class="messages-qtd" style="display:none;">0</span><span>Messages</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- PROFILE MODULE -->
|
||||
<div class="module mini-profile">
|
||||
<div class="mini-profile-info">
|
||||
<!-- THEME NIN added sub-menu (mentions, messages and edit profile) -->
|
||||
<ul class="mini-profile-indicators selectable_theme theme_nin">
|
||||
<li class="userMenu-connections">
|
||||
<a href="#" title="Mentions"><span class="messages-qtd" style="display:none;">0</span><span>Mentions</span></a>
|
||||
</li>
|
||||
<li class="userMenu-messages">
|
||||
<a href="#" title="Direct Messages"><span class="messages-qtd" style="display:none;">0</span><span>Messages</span></a>
|
||||
</li>
|
||||
<li class="userMenu-user">
|
||||
<a href="profile-edit.html" title="Edit profile"><span>Edit profile</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--/sub-menu -->
|
||||
<div class="mini-profile-photo"><img src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/></div>
|
||||
<a href="#" class="mini-profile-name open-profile-modal"></a>
|
||||
<span class="mini-profile-view">View</span>
|
||||
@ -132,8 +126,8 @@
|
||||
<textarea placeholder="New Post..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -169,8 +163,8 @@
|
||||
<textarea placeholder="New Post..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -193,6 +187,19 @@
|
||||
|
||||
<!-- TEMPLATES INIT -->
|
||||
<div id="templates" style="display:none;">
|
||||
<div id="search-profile-template">
|
||||
<li>
|
||||
<div class="mini-profile-info">
|
||||
<a class="open-profile-modal">
|
||||
<img class="mini-profile-photo" src="img/grayed_avatar_placeholder_24.png" alt="user-photo" />
|
||||
<span class="mini-screen-name">@<b></b></span>
|
||||
<span class="mini-profile-name"></span>
|
||||
</a>
|
||||
<button class="follow">Follow</button>
|
||||
</div>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<!-- TEMPLATE DE WHO-TO-FOLLOW MODULE -->
|
||||
<div id="who-to-follow-template">
|
||||
<div>
|
||||
@ -338,8 +345,8 @@
|
||||
<textarea placeholder="Reply..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -385,12 +392,12 @@
|
||||
<div class="modal-wrapper">
|
||||
<div class="modal-header">
|
||||
<h3></h3>
|
||||
<span id="closeModal" class="modal-close cancel">×</span>
|
||||
<span id="closeModal" class="modal-close">×</span>
|
||||
<span class="modal-back"><</span>
|
||||
<span class="mark-all-as-read"></span>
|
||||
</div>
|
||||
<div class="modal-content"></div>
|
||||
<div class="modal-blackout cancel"></div>
|
||||
<div class="modal-blackout"></div>
|
||||
</div>
|
||||
|
||||
<div class="prompt-wrapper">
|
||||
@ -401,14 +408,22 @@
|
||||
<div class="modal-content"></div>
|
||||
</div>
|
||||
|
||||
<div id="confirm-popup-template">
|
||||
<div class="message"></div>
|
||||
<div class="modal-buttons">
|
||||
<button class="confirm"></button>
|
||||
<button class="cancel"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="reTwist-modal-template">
|
||||
<div class="post-area">
|
||||
<form class="post-area-new open">
|
||||
<textarea placeholder="New Post..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
<div class="modal-buttons">
|
||||
<span class="switch-mode">Switch to Reply</span>
|
||||
@ -425,8 +440,8 @@
|
||||
<div class="post-area-extras">
|
||||
<span class="switch-mode">Switch to Retransmit</span>
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button class="post-submit disabled" disabled="true">post</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button class="post-submit disabled" disabled="disabled">post</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -461,7 +476,10 @@
|
||||
<!-- cada li é uma mensagem -->
|
||||
<li id="dm-chat-template" class="module post message">
|
||||
<div class="post-photo"><img src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/></div>
|
||||
<a href="#" class="post-info-time" title="08/10/13 às 18:00"><span class="post-info-sent"></span> <span></span></a>
|
||||
<div class="post-info">
|
||||
<a class="post-info-name open-profile-modal"></a>
|
||||
<a class="post-info-time"><span class="post-info-sent"></span> <span></span></a>
|
||||
</div>
|
||||
<p class="post-text"></p>
|
||||
</li>
|
||||
|
||||
@ -470,13 +488,114 @@
|
||||
<textarea placeholder="New direct message..."></textarea>
|
||||
<div class="post-area-extras">
|
||||
<span class="post-area-remaining">140</span>
|
||||
<button class="undo-unicode disabled" disabled="true">undo</button>
|
||||
<button title="Direct messages are encrypted, only you and receiver can read them" style="margin-right:7.5%;" class="dm-submit disabled" disabled="true">send</button>
|
||||
<button class="undo-unicode disabled" disabled="disabled">undo</button>
|
||||
<button title="Direct messages are encrypted, only you and receiver can read them" style="margin-right:7.5%;" class="dm-submit disabled" disabled="disabled">send</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- MODAL DE DIRECT MESSAGES INIT -->
|
||||
|
||||
<div id="group-messages-profile-modal-control-template">
|
||||
<div class="group-messages-control b-buttons">
|
||||
<button class="new">New group</button>
|
||||
<button class="join">Join group</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-messages-messages-modal-control-template">
|
||||
<div class="group-messages-control b-buttons">
|
||||
<button class="profile">Profile</button>
|
||||
<button class="invite">Invite peers</button>
|
||||
<button class="leave">Leave group</button>
|
||||
<div class="invite-form">
|
||||
<textarea></textarea><button disabled="disabled">Invite</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-profile-modal-template">
|
||||
<div class="profile-card" data-screen-name="">
|
||||
<div class="profile-card-main">
|
||||
<div class="profile-bio"></div>
|
||||
</div>
|
||||
<div class="profile-card-buttons group-messages-control b-buttons">
|
||||
<button class="direct-messages-with-user" disabled="disabled">Messages</button>
|
||||
<button class="invite" disabled="disabled">Invite peers</button>
|
||||
<button class="show-secret-key" disabled="disabled">Secret Key</button>
|
||||
<button class="leave" disabled="disabled">Leave group</button>
|
||||
<div class="invite-form">
|
||||
<textarea></textarea><button disabled="disabled">Invite</button>
|
||||
</div>
|
||||
<div class="secret-key"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="members"></div>
|
||||
</div>
|
||||
|
||||
<div id="group-profile-member-template">
|
||||
<div class="twister-user">
|
||||
<div>
|
||||
<a class="twister-user-name open-profile-modal">
|
||||
<img class="twister-user-photo" src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="twister-user-info" data-screen-name="">
|
||||
<a class="twister-user-name open-profile-modal">
|
||||
<span class="twister-user-full"></span>
|
||||
<span class="twister-user-tag"></span>
|
||||
</a>
|
||||
<div class="bio"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-messages-new-group-template">
|
||||
<div class="module">
|
||||
<div>
|
||||
<p class="label">Group description</p>
|
||||
<textarea class="description" placeholder="Describe group"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<p class="label">Peers to invite</p>
|
||||
<textarea class="invite" placeholder="Invite somebody"></textarea>
|
||||
</div>
|
||||
<div>
|
||||
<button class="create" disabled="disabled">Create</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="group-messages-join-group-template">
|
||||
<div class="module">
|
||||
<div>
|
||||
<p class="label">Select group(s)</p>
|
||||
<ul class="groups-list"></ul>
|
||||
</div>
|
||||
<div>
|
||||
<button class="join" disabled="disabled">Join</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="module">
|
||||
<div>
|
||||
<p class="label">Import secret key</p>
|
||||
<input class="secret-key-import" type="textbox" placeholder="52-characters secret" size="52" rows="1"></input>
|
||||
</div>
|
||||
<div>
|
||||
<p class="label">With group alias</p>
|
||||
<input class="username-import" type="textbox" placeholder="Type group alias here" size="16" rows="1"></input>
|
||||
</div>
|
||||
<div>
|
||||
<button class="import-secret-key" disabled="disabled">Import key</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="groups-list-item-template">
|
||||
<li>
|
||||
<input type="checkbox" /> <a class="twister-user-name open-profile-modal"></a> // <span class="description"></span>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<!-- MODAL DE PROFILE -->
|
||||
<div id="profile-modal-template">
|
||||
<!-- ÁREA DE PROFILE PHOTO INIT -->
|
||||
@ -510,7 +629,7 @@
|
||||
<li><a href="#"><span class="followers-count"> </span><span class="label">Followers</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="profile-card-buttons">
|
||||
<div class="profile-card-buttons b-buttons">
|
||||
<button class="follow" href="#">Follow</button>
|
||||
<button class="direct-messages-with-user" href="#">Direct Messages</button>
|
||||
<button class="mentions-from-user" href="#">Mentions</button>
|
||||
|
BIN
img/groupmessages.png
Normal file
BIN
img/groupmessages.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
@ -55,12 +55,56 @@ function closeModal() {
|
||||
});
|
||||
}
|
||||
|
||||
function closePrompt() {
|
||||
closeModalHandler('.prompt-wrapper');
|
||||
}
|
||||
|
||||
function closeModalHandler(classBase) {
|
||||
var modalWindows = $(classBase+':not(#templates *)');
|
||||
|
||||
modalWindows.fadeOut('fast', function() {modalWindows.remove();});
|
||||
}
|
||||
|
||||
function confirmPopup(event, req) {
|
||||
event.stopPropagation();
|
||||
|
||||
var modal = openModal({
|
||||
classBase: '.prompt-wrapper',
|
||||
classAdd: 'confirm-popup',
|
||||
content: $('#confirm-popup-template').children().clone(true),
|
||||
title: req.titleTxt
|
||||
});
|
||||
|
||||
if (req.messageTxt)
|
||||
modal.content.find('.message').text(req.messageTxt);
|
||||
|
||||
var btn = modal.content.find('.confirm');
|
||||
if (req.confirmTxt)
|
||||
btn.text(req.confirmTxt);
|
||||
else
|
||||
btn.text(polyglot.t('Confirm'));
|
||||
if (req.confirmFunc) {
|
||||
btn.on('click', function () {
|
||||
closePrompt();
|
||||
req.confirmFunc(req.confirmFuncArgs);
|
||||
});
|
||||
} else
|
||||
btn.on('click', closePrompt);
|
||||
|
||||
var btn = modal.content.find('.cancel');
|
||||
if (req.cancelTxt)
|
||||
btn.text(req.cancelTxt);
|
||||
else
|
||||
btn.text(polyglot.t('Cancel'));
|
||||
if (req.cancelFunc) {
|
||||
btn.on('click', function () {
|
||||
closePrompt();
|
||||
req.cancelFunc(req.cancelFuncArgs);
|
||||
});
|
||||
} else
|
||||
btn.on('click', closePrompt);
|
||||
}
|
||||
|
||||
function checkNetworkStatusAndAskRedirect(cbFunc, cbArg) {
|
||||
networkUpdate(function(args) {
|
||||
if (!twisterdConnectedAndUptodate) {
|
||||
@ -98,7 +142,43 @@ function timeSincePost(t) {
|
||||
return polyglot.t('time_ago', {time: expression});
|
||||
}
|
||||
|
||||
function openProfileModalWithUsernameHandler(username) {
|
||||
function openGroupProfileModalWithNameHandler(groupAlias) {
|
||||
var modal = openModal({
|
||||
classAdd: 'profile-modal',
|
||||
content: $('#group-profile-modal-template').children().clone(true),
|
||||
title: polyglot.t('users_profile', {username: '<span>' + groupAlias + '</span>'})
|
||||
});
|
||||
|
||||
modal.content.find('.profile-card').attr('data-screen-name', groupAlias);
|
||||
|
||||
groupMsgGetGroupInfo(groupAlias,
|
||||
function(req, ret) {
|
||||
if (ret) {
|
||||
req.modal.content.find('.profile-bio').text(ret.description);
|
||||
|
||||
if (ret.members.indexOf(defaultScreenName) !== -1)
|
||||
req.modal.content.find('.group-messages-control').children('button').attr('disabled', false);
|
||||
|
||||
var membersList = req.modal.content.find('.members');
|
||||
var memberTemplate = $('#group-profile-member-template').children();
|
||||
for (var i = 0; i < ret.members.length; i++) {
|
||||
var item = memberTemplate.clone(true).appendTo(membersList);
|
||||
|
||||
item.find('.twister-user-info').attr('data-screen-name', ret.members[i]);
|
||||
item.find('.twister-user-name').attr('href', $.MAL.userUrl(ret.members[i]));
|
||||
|
||||
getAvatar(ret.members[i], item.find('.twister-user-photo'));
|
||||
getFullname(ret.members[i], item.find('.twister-user-full'));
|
||||
getBio(ret.members[i], item.find('.bio'));
|
||||
}
|
||||
}
|
||||
}, {modal: modal}
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function openUserProfileModalWithNameHandler(username) {
|
||||
var content = $('#profile-modal-template').children().clone(true);
|
||||
|
||||
updateProfileData(content, username);
|
||||
@ -333,18 +413,26 @@ function loadModalFromHash() {
|
||||
var hashdata = hashstring.split(':');
|
||||
|
||||
if (hashdata[0] !== '#web+twister')
|
||||
hashdata = hashstring.match(/(hashtag|profile|mentions|directmessages|following|conversation)\?(?:user|hashtag|post)=(.+)/);
|
||||
hashdata = hashstring.match(/(hashtag|profile|mentions|directmessages|following|conversation)\?(?:group|user|hashtag|post)=(.+)/); // need to rework hash scheme to use group|user|hashtag|post or drop it
|
||||
|
||||
if (hashdata && hashdata[1] !== undefined && hashdata[2] !== undefined) {
|
||||
if (hashdata[1] === 'profile')
|
||||
openProfileModalWithUsernameHandler(hashdata[2]);
|
||||
if (hashdata[2][0] === '*')
|
||||
openGroupProfileModalWithNameHandler(hashdata[2]);
|
||||
else
|
||||
openUserProfileModalWithNameHandler(hashdata[2]);
|
||||
|
||||
else if (hashdata[1] === 'hashtag')
|
||||
openHashtagModalFromSearchHandler(hashdata[2]);
|
||||
else if (hashdata[1] === 'mentions')
|
||||
openMentionsModalHandler(hashdata[2]);
|
||||
else if (hashdata[1] === 'directmessages')
|
||||
openDmWithUserModal(hashdata[2]);
|
||||
else if (hashdata[1] === 'following')
|
||||
else if (hashdata[1] === 'directmessages') {
|
||||
if (hashdata[2][0] === '*')
|
||||
openGroupMessagesModal(hashdata[2]);
|
||||
else
|
||||
openDmWithUserModal(hashdata[2]);
|
||||
|
||||
} else if (hashdata[1] === 'following')
|
||||
openFollowingModal(hashdata[2]);
|
||||
else if (hashdata[1] === 'conversation') {
|
||||
splithashdata2 = hashdata[2].split(':');
|
||||
@ -352,6 +440,12 @@ function loadModalFromHash() {
|
||||
}
|
||||
} else if (hashstring === '#directmessages')
|
||||
directMessagesPopup();
|
||||
else if (hashstring === '#groupmessages')
|
||||
openGroupMessagesModal();
|
||||
else if (hashstring === '#groupmessages+newgroup')
|
||||
openGroupMessagesNewGroupModal();
|
||||
else if (hashstring === '#groupmessages+joingroup')
|
||||
openGroupMessagesJoinGroupModal();
|
||||
else if (hashstring === '#whotofollow')
|
||||
openWhoToFollowModal();
|
||||
}
|
||||
@ -627,7 +721,7 @@ function posPostPreview(event) {
|
||||
if (textArea[0].value.length)
|
||||
postPreview.html(htmlFormatMsg(textArea[0].value).html).show();
|
||||
else
|
||||
postPreview.slideUp('fast');
|
||||
postPreview.hide();
|
||||
textArea.before(postPreview);
|
||||
}
|
||||
|
||||
@ -706,7 +800,7 @@ function replyTextInput(event) {
|
||||
$(tas[i]).caret(caretPos);
|
||||
replyTextUpdateRemaining(tas[i]);
|
||||
if ($.fn.textcomplete)
|
||||
setTextcompleteOnElement(tas[i]);
|
||||
setTextcompleteOnElement(tas[i], getMentionsForAutoComplete());
|
||||
}
|
||||
}
|
||||
} else if (tas.length > 1 && tas[i].value.length === 0) {
|
||||
@ -1317,7 +1411,7 @@ function postSubmit(e, oldLastPostId) {
|
||||
}
|
||||
|
||||
if (btnPostSubmit.parents('.prompt-wrapper').length)
|
||||
closeModalHandler('.prompt-wrapper');
|
||||
closePrompt();
|
||||
else {
|
||||
textArea.val('').attr('placeholder', polyglot.t('Your message was sent!'));
|
||||
var tweetForm = btnPostSubmit.parents('form');
|
||||
@ -1338,7 +1432,7 @@ function retweetSubmit(e) {
|
||||
|
||||
newRtMsg($(this).closest('.prompt-wrapper').find('.post-data'));
|
||||
|
||||
closeModalHandler('.prompt-wrapper');
|
||||
closePrompt();
|
||||
}
|
||||
|
||||
function changeStyle() {
|
||||
@ -1409,7 +1503,7 @@ function replaceDashboards() {
|
||||
}
|
||||
|
||||
function initInterfaceCommon() {
|
||||
$('.cancel').on('click', function() {
|
||||
$('.modal-close, .modal-blackout').not('.prompt-close').on('click', function() {
|
||||
if ($('.modal-content').attr('style') != undefined)
|
||||
$('.modal-content').removeAttr('style');
|
||||
$('.modal-back').css('display', 'none');
|
||||
@ -1419,10 +1513,7 @@ function initInterfaceCommon() {
|
||||
|
||||
$('.modal-back').on('click', function() {history.back();});
|
||||
|
||||
$('.prompt-close').on('click', function(e) {
|
||||
e.stopPropagation();
|
||||
closeModalHandler('.prompt-wrapper');
|
||||
});
|
||||
$('.prompt-close').on('click', closePrompt);
|
||||
|
||||
/*
|
||||
$('.modal-back').on('click', function() {
|
||||
@ -1480,10 +1571,10 @@ function initInterfaceCommon() {
|
||||
$('.bitmessage-ctc').on('click', promptCopyAttrData);
|
||||
|
||||
if ($.fn.textcomplete) {
|
||||
$('textarea').on({
|
||||
'focus': setTextcompleteOnEventTarget,
|
||||
'focusout': function () {$(this).textcomplete('destroy');}
|
||||
});
|
||||
$('.post-area-new textarea')
|
||||
.on('focus', {req: getMentionsForAutoComplete}, setTextcompleteOnEventTarget)
|
||||
.on('focusout', unsetTextcompleteOnEventTarget)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1499,19 +1590,30 @@ function killInterfaceModule(module) {
|
||||
$('.module.'+module).empty().hide();
|
||||
}
|
||||
|
||||
function setTextcompleteOnEventTarget(event) {
|
||||
// cursor has not set yet and we need to wait 100ms to skip global click event
|
||||
setTimeout(setTextcompleteOnElement, 100, event.target);
|
||||
function inputEnterActivator(event) {
|
||||
var elemEvent = $(event.target);
|
||||
elemEvent.parents(event.data.parentSelector).find(event.data.enterSelector)
|
||||
.attr('disabled', elemEvent.val().trim() === '');
|
||||
}
|
||||
|
||||
function setTextcompleteOnElement(elem) {
|
||||
function setTextcompleteOnEventTarget(event) {
|
||||
// cursor has not set yet and we need to wait 100ms to skip global click event
|
||||
setTimeout(setTextcompleteOnElement, 100, event.target,
|
||||
typeof event.data.req === 'function' ? event.data.req() : event.data.req);
|
||||
}
|
||||
|
||||
function setTextcompleteOnElement(elem, req) {
|
||||
elem = $(elem);
|
||||
elem.textcomplete(getMentionsForAutoComplete(), {
|
||||
elem.textcomplete(req, {
|
||||
appendTo: (elem.parents('.dashboard').length) ? elem.parent() : $('body'),
|
||||
listPosition: setTextcompleteDropdownListPos
|
||||
});
|
||||
}
|
||||
|
||||
function unsetTextcompleteOnEventTarget(event) {
|
||||
$(event.target).textcomplete('destroy');
|
||||
}
|
||||
|
||||
// following workaround function is for calls from $.fn.textcomplete only
|
||||
// we need this because currently implementation of caret position detection is way too imperfect
|
||||
function setTextcompleteDropdownListPos(position) {
|
||||
|
@ -44,6 +44,9 @@ if(preferredLanguage == "en"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Cancel",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Change user",
|
||||
"Checking...": "Checking...", // checking if username is available
|
||||
"Collapse": "Collapse", // smaller view of a post
|
||||
@ -54,6 +57,9 @@ if(preferredLanguage == "en"){
|
||||
"Detailed information": "Detailed information",
|
||||
"DHT network down.": "DHT network down.",
|
||||
"Direct Messages": "Direct Messages",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direct messages with %{username}",
|
||||
"Disable": "Disable",
|
||||
"Display mentions to @": "Display mentions to @",
|
||||
@ -94,6 +100,16 @@ if(preferredLanguage == "en"){
|
||||
"Network status": "Network status",
|
||||
"New direct message...": "New direct message...",
|
||||
"New Post...": "New Post...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -101,6 +117,7 @@ if(preferredLanguage == "en"){
|
||||
"new_posts": "%{smart_count} new post |||| %{smart_count} new posts",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nobody", // used to promote a post without attaching the user
|
||||
"Not available": "Not available", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -344,6 +361,9 @@ if(preferredLanguage == "es"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Cancelar",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Cambiar de usuario",
|
||||
"Checking...": "Comprobando ...", // checking if username is available
|
||||
"Collapse": "Colapsar", // smaller view of a post
|
||||
@ -354,6 +374,9 @@ if(preferredLanguage == "es"){
|
||||
"Detailed information": "Información detallada",
|
||||
"DHT network down.": "Red DHT caida.",
|
||||
"Direct Messages": "Mensajes directos",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Mensajes directos con %{username}",
|
||||
"Disable": "Inhabilitar",
|
||||
"Display mentions to @": "Visualización de menciones a @",
|
||||
@ -394,6 +417,16 @@ if(preferredLanguage == "es"){
|
||||
"Network status": "Estado de la red",
|
||||
"New direct message...": "Nuevo mensaje directo...",
|
||||
"New Post...": "Nuevo Post...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -401,6 +434,7 @@ if(preferredLanguage == "es"){
|
||||
"new_posts": "%{smart_count} nuevo post |||| %{smart_count} nuevos posts",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "Nadie", // used to promote a post without attaching the user
|
||||
"Not available": "No disponible", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -628,6 +662,9 @@ if(preferredLanguage == "uk"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Відміна",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Змінити користувача",
|
||||
"Checking...": "Перевірка...", // checking if username is available
|
||||
"Collapse": "Згорнути", // smaller view of a post
|
||||
@ -638,6 +675,9 @@ if(preferredLanguage == "uk"){
|
||||
"Detailed information": "Детальна інформація",
|
||||
"DHT network down.": "Мережа DHT недоступна.",
|
||||
"Direct Messages": "Особисті повідомлення",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direct messages with %{username}",
|
||||
"Disable": "Вимкнено",
|
||||
"Display mentions to @": "Показати сповіщення @",
|
||||
@ -679,6 +719,16 @@ if(preferredLanguage == "uk"){
|
||||
"Network status": "Статус мережі",
|
||||
"New direct message...": "Нове повідомлення...",
|
||||
"New Post...": "Що нового?",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "Ви отримали",
|
||||
"in postboard": "в стрічці",
|
||||
"in search result": "в пошуковому запиті",
|
||||
@ -686,6 +736,7 @@ if(preferredLanguage == "uk"){
|
||||
"new_posts": "%{smart_count} новий твіст |||| %{smart_count} нових твістів",
|
||||
"new_mentions": "%{smart_count} нове сповіщення |||| %{smart_count} нових сповіщень",
|
||||
"new_direct_messages": "%{smart_count} нове повідомлення |||| %{smart_count} нові повідомлення",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "анонім", // used to promote a post without attaching the user
|
||||
"Not available": "Не доступне", // username is not available
|
||||
"notify_desktop_error": "Twister не може створити сповіщення: невідома помилка.",
|
||||
@ -911,6 +962,9 @@ if(preferredLanguage == "zh-CN"){
|
||||
"busted_oh": "噢,阻挡!",
|
||||
"busted_avowal": "系统检测到此用户试图在这里注入恶意代码",
|
||||
"Cancel": "取消",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "切换用户",
|
||||
"Checking...": "检查中...", // checking if username is available
|
||||
"Collapse": "折叠", // smaller view of a post
|
||||
@ -921,6 +975,9 @@ if(preferredLanguage == "zh-CN"){
|
||||
"Detailed information": "详细信息",
|
||||
"DHT network down.": "DHT网络中断。",
|
||||
"Direct Messages": "私信",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direct messages with %{username}",
|
||||
"Disable": "关闭",
|
||||
"Display mentions to @": "显示@",
|
||||
@ -961,6 +1018,16 @@ if(preferredLanguage == "zh-CN"){
|
||||
"Network status": "网络状态",
|
||||
"New direct message...": "新私信...",
|
||||
"New Post...": "新推文...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "你收到",
|
||||
"in postboard": "在时间线里",
|
||||
"in search result": "在搜索结果里",
|
||||
@ -968,6 +1035,7 @@ if(preferredLanguage == "zh-CN"){
|
||||
"new_posts": "%{smart_count} 篇新推文",
|
||||
"new_mentions": "%{smart_count} 次新的提及",
|
||||
"new_direct_messages": "%{smart_count} 封新私信",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "无名", // used to promote a post without attaching the user
|
||||
"Not available": "用户名不可用", // username is not available
|
||||
"notify_desktop_error": "Twister 无法发出桌面提醒:发生未知错误。",
|
||||
@ -1211,6 +1279,9 @@ if(preferredLanguage == "nl"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Annuleren",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Gebruiker wijzigen",
|
||||
"Checking...": "Controleren...", // checking if username is available
|
||||
"Collapse": "Uitklappen", // smaller view of a post
|
||||
@ -1221,6 +1292,9 @@ if(preferredLanguage == "nl"){
|
||||
"Detailed information": "Gedetailleerde informatie",
|
||||
"DHT network down.": "DHT netwerk down.",
|
||||
"Direct Messages": "Privéberichten",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direct messages with %{username}",
|
||||
"Disable": "Uitschakelen",
|
||||
"Display mentions to @": "Toon vermeldingen voor @",
|
||||
@ -1261,6 +1335,16 @@ if(preferredLanguage == "nl"){
|
||||
"Network status": "Netwerkstatus",
|
||||
"New direct message...": "Nieuw privébericht...",
|
||||
"New Post...": "Nieuw bericht...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -1268,6 +1352,7 @@ if(preferredLanguage == "nl"){
|
||||
"new_posts": "%{smart_count} nieuw bericht |||| %{smart_count} nieuwe berichten",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nobody", // used to promote a post without attaching the user
|
||||
"Not available": "Niet beschikbaar", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -1495,6 +1580,9 @@ if(preferredLanguage == "it"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Cancella",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Cambia utente",
|
||||
"Checking...": "Controllo in corso...", // checking if username is available
|
||||
"Collapse": "Chiudi", // smaller view of a post
|
||||
@ -1505,6 +1593,9 @@ if(preferredLanguage == "it"){
|
||||
"Detailed information": "Informazioni dettagliate",
|
||||
"DHT network down.": "DHT network inaccessibile.",
|
||||
"Direct Messages": "Messaggi Diretti",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Messaggi Diretti come %{username}",
|
||||
"Disable": "Disabilitato",
|
||||
"Display mentions to @": "Mostra le menzioni di @",
|
||||
@ -1545,6 +1636,16 @@ if(preferredLanguage == "it"){
|
||||
"Network status": "Status della rete",
|
||||
"New direct message...": "Nuovo messaggio diretto...",
|
||||
"New Post...": "Nuovo messaggio...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -1552,6 +1653,7 @@ if(preferredLanguage == "it"){
|
||||
"new_posts": "%{smart_count} nuovo messaggio |||| %{smart_count} nuovi messaggi",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nessuno", // used to promote a post without attaching the user
|
||||
"Not available": "Non disponibile", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -1776,6 +1878,9 @@ if(preferredLanguage == "fr"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Annuler",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Changer d'utilisateur",
|
||||
"Checking...": "Vérification...", // checking if username is available
|
||||
"Collapse": "Fermer", // smaller view of a post
|
||||
@ -1786,6 +1891,9 @@ if(preferredLanguage == "fr"){
|
||||
"Detailed information": "Informations détaillées",
|
||||
"DHT network down.": "Panne du réseau DHT.",
|
||||
"Direct Messages": "Messages privés",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Messages privés avec %{username}",
|
||||
"Disable": "Désactiver",
|
||||
"Display mentions to @": "Afficher les mentions pour @",
|
||||
@ -1826,6 +1934,16 @@ if(preferredLanguage == "fr"){
|
||||
"Network status": "État du réseau",
|
||||
"New direct message...": "Nouveau message privé...",
|
||||
"New Post...": "Nouveau billets...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "Tu as",
|
||||
"in postboard": "sur le postboard",
|
||||
"in search result": "dans les résultats de recherche",
|
||||
@ -1833,6 +1951,7 @@ if(preferredLanguage == "fr"){
|
||||
"new_posts": "%{smart_count} nouveau billet |||| %{smart_count} nouveaux billets",
|
||||
"new_mentions": "%{smart_count} nouvelle mention |||| %{smart_count} nouvelles mentions",
|
||||
"new_direct_messages": "%{smart_count} nouveau message privé |||| %{smart_count} nouveaux messages privés",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nobody", // used to promote a post without attaching the user
|
||||
"Not available": "Non disponible", // username is not available
|
||||
"notify_desktop_error": "Impossible d'afficher les notifications: une erreur inconnue est survenue.",
|
||||
@ -2062,6 +2181,9 @@ if(preferredLanguage == "ru"){
|
||||
"busted_oh": "о нет!",
|
||||
"busted_avowal": "я пойман на попытке вставить этот подозрительный код здесь",
|
||||
"Cancel": "Отмена",
|
||||
"Confirm": "Несомненно",
|
||||
"сonfirm_group_leaving_header": "Подтверждение ухода из группы",
|
||||
"сonfirm_group_leaving_body": "Воистину покинуть группу %{alias}?",
|
||||
"Change user": "Сменить пользователя",
|
||||
"Checking...": "Проверка...",
|
||||
"Collapse": "Свернуть",
|
||||
@ -2072,6 +2194,9 @@ if(preferredLanguage == "ru"){
|
||||
"Detailed information": "Подробная информация",
|
||||
"DHT network down.": "Недоступна DHT сеть.",
|
||||
"Direct Messages": "Личные сообщения",
|
||||
"Group Messages": "Групповые сообщения",
|
||||
"Group Messages — New Group Creation": "Групповые сообщения — Создать новую группу",
|
||||
"Group Messages — Join Group": "Групповые сообщения — Присоединиться к группе",
|
||||
"direct_messages_with": "Личная переписка с %{username}",
|
||||
"Disable": "Отключено",
|
||||
"Display mentions to @": "Показать ответы для @",
|
||||
@ -2112,6 +2237,16 @@ if(preferredLanguage == "ru"){
|
||||
"Network status": "Состояние сети",
|
||||
"New direct message...": "Новое личное сообщение...",
|
||||
"New Post...": "Новый пост...",
|
||||
"New group": "Создать группу",
|
||||
"Group description": "Описание группы",
|
||||
"Peers to invite": "Кого пригласить",
|
||||
"Join group": "Присоединиться",
|
||||
"Select group(s)": "Выберите группу(ы)",
|
||||
"Create": "Создать",
|
||||
"Join": "Присоединиться",
|
||||
"Invite": "Пригласить",
|
||||
"Invite peers": "Пригласить кого",
|
||||
"Leave group": "Покинуть группу",
|
||||
"You got": "У вас",
|
||||
"in postboard": "в ленте",
|
||||
"in search result": "в результатах поиска",
|
||||
@ -2119,6 +2254,7 @@ if(preferredLanguage == "ru"){
|
||||
"new_posts": "%{smart_count} новый пост |||| %{smart_count} новых постов",
|
||||
"new_mentions": "%{smart_count} новое упоминание |||| %{smart_count} новых упоминаний",
|
||||
"new_direct_messages": "%{smart_count} новое личное сообщение |||| %{smart_count} новых личных сообщений",
|
||||
"new_group_messages": "%{smart_count} новое сообщение в группе |||| %{smart_count} новых групповых сообщений",
|
||||
"nobody": "Анонимно", // used to promote a post without attaching the user
|
||||
"Not available": "Недоступно",
|
||||
"notify_desktop_error": "Твистер не может выполнить уведомление: произошла неизвестная ошибка.",
|
||||
@ -2351,6 +2487,9 @@ if(preferredLanguage == "de"){
|
||||
"busted_oh": "Oh nein!",
|
||||
"busted_avowal": "Ich bin ertappt, habe versucht, hier Schadcode einzugeben!",
|
||||
"Cancel": "Abbrechen",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Benutzer wechseln",
|
||||
"Checking...": "Überprüfe...", // checking if username is available
|
||||
"Collapse": "Einklappen", // smaller view of a post
|
||||
@ -2361,6 +2500,9 @@ if(preferredLanguage == "de"){
|
||||
"Detailed information": "Detaillierte Informationen",
|
||||
"DHT network down.": "DHT-Netzwerk nicht verfügbar.",
|
||||
"Direct Messages": "Direktnachrichten",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direktnachrichten mit %{username}",
|
||||
"Disable": "Deaktivieren",
|
||||
"Display mentions to @": "Zeige Erwähnungen von @", //Ist das richtig? Ich weiß nicht, in welchem Zusammenhang das benutzt wird.
|
||||
@ -2402,6 +2544,16 @@ if(preferredLanguage == "de"){
|
||||
"Network status": "Netzwerkstatus",
|
||||
"New direct message...": "Neue Direktnachricht...",
|
||||
"New Post...": "Neuer Post...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "Du hast",
|
||||
"in postboard": "in der Timeline",
|
||||
"in search result": "in den Suchergebnissen",
|
||||
@ -2409,6 +2561,7 @@ if(preferredLanguage == "de"){
|
||||
"new_posts": "%{smart_count} neuer Post |||| %{smart_count} neue Posts",
|
||||
"new_mentions": "%{smart_count} neue Erwähnung |||| %{smart_count} neue Erwähnungen",
|
||||
"new_direct_messages": "%{smart_count} neue Direktnachricht |||| %{smart_count} neue Direktnachrichten",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nobody", // used to promote a post without attaching the user
|
||||
"Not available": "Nicht verfügbar", // username is not available
|
||||
"notify_desktop_error": "Twister kann keine Desktop-Meldungen anzeigen: ein unbekannter Fehler trat auf.",
|
||||
@ -2637,6 +2790,9 @@ if(preferredLanguage == "ja"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "キャンセル",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "ユーザーを変更",
|
||||
"Checking...": "チェック...", // checking if username is available
|
||||
"Collapse": "閉じる", // smaller view of a post
|
||||
@ -2647,6 +2803,9 @@ if(preferredLanguage == "ja"){
|
||||
"Detailed information": "詳細",
|
||||
"DHT network down.": "DHTネットワークがダウンしています",
|
||||
"Direct Messages": "ダイレクトメッセージ",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direct messages with %{username}",
|
||||
"Disable": "停止",
|
||||
"Display mentions to @": "メンションを表示する",
|
||||
@ -2687,6 +2846,16 @@ if(preferredLanguage == "ja"){
|
||||
"Network status": "ネットワークステータス",
|
||||
"New direct message...": "ダイレクトメッセージ...",
|
||||
"New Post...": "投稿する",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -2694,6 +2863,7 @@ if(preferredLanguage == "ja"){
|
||||
"new_posts": "%{smart_count} 新投稿 |||| %{smart_count} 新投稿",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "ナナシ", // used to promote a post without attaching the user
|
||||
"Not available": "使用中", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -2919,6 +3089,9 @@ if(preferredLanguage == "pt-BR"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Cancelar",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Trocar usuário",
|
||||
"Checking...": "Verificando...", // checking if username is available
|
||||
"Collapse": "Recolher", // smaller view of a post
|
||||
@ -2929,6 +3102,9 @@ if(preferredLanguage == "pt-BR"){
|
||||
"Detailed information": "Informações detalhadas",
|
||||
"DHT network down.": "Falha na rede DHT",
|
||||
"Direct Messages": "Mensagens Diretas",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Mensagens Diretas com %{username}",
|
||||
"Disable": "Desabilitado",
|
||||
"Display mentions to @": "Exibir menções a @",
|
||||
@ -2969,6 +3145,16 @@ if(preferredLanguage == "pt-BR"){
|
||||
"Network status": "Estado da rede",
|
||||
"New direct message...": "Nova mensagem direta...",
|
||||
"New Post...": "Nova Postagem...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -2976,6 +3162,7 @@ if(preferredLanguage == "pt-BR"){
|
||||
"new_posts": "%{smart_count} nova postagem |||| %{smart_count} novas postagens",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nobody", // used to promote a post without attaching the user
|
||||
"Not available": "Indisponível", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -3205,6 +3392,9 @@ if(preferredLanguage == "tr"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "İptal",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Kullanıcı değiştir",
|
||||
"Checking...": "Denetleniyor...", // checking if username is available
|
||||
"Collapse": "Kapat", // smaller view of a post
|
||||
@ -3215,6 +3405,9 @@ if(preferredLanguage == "tr"){
|
||||
"Detailed information": "Detaylı bilgi",
|
||||
"DHT network down.": "DHT ağı çalışmıyor.",
|
||||
"Direct Messages": "Direk Mesajlar",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "%{username} ile Direk Mesajlar",
|
||||
"Disable": "Kullanılmaz",
|
||||
"Display mentions to @": "@ adının geçtiği gönderiler",
|
||||
@ -3255,6 +3448,16 @@ if(preferredLanguage == "tr"){
|
||||
"Network status": "Ağ durumu",
|
||||
"New direct message...": "Yeni direk mesaj...",
|
||||
"New Post...": "Yeni gönderi...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "You got",
|
||||
"in postboard": "in postboard",
|
||||
"in search result": "in search result",
|
||||
@ -3262,6 +3465,7 @@ if(preferredLanguage == "tr"){
|
||||
"new_posts": "%{smart_count} yeni gönederi |||| %{smart_count} yeni gönderi",
|
||||
"new_mentions": "%{smart_count} new mention |||| %{smart_count} new mentions",
|
||||
"new_direct_messages": "%{smart_count} new direct message |||| %{smart_count} new direct messages",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "hiçkimse", // used to promote a post without attaching the user
|
||||
"Not available": "Kullanılamaz", // username is not available
|
||||
"notify_desktop_error": "Twister cannot perform desktop notification: unknown error occured.",
|
||||
@ -3488,6 +3692,9 @@ if(preferredLanguage == "cs"){
|
||||
"busted_oh": "oh noes!",
|
||||
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
|
||||
"Cancel": "Zrušit",
|
||||
"Confirm": "Confirm",
|
||||
"сonfirm_group_leaving_header": "Confirm group leaving",
|
||||
"сonfirm_group_leaving_body": "Are you sure want to leave %{alias} group?",
|
||||
"Change user": "Změnit uživatele",
|
||||
"Checking...": "Ověřuji...", // checking if username is available
|
||||
"Collapse": "Složit", // smaller view of a post
|
||||
@ -3498,6 +3705,9 @@ if(preferredLanguage == "cs"){
|
||||
"Detailed information": "Podrobné informace",
|
||||
"DHT network down.": "Síť DHT je nedostupná.",
|
||||
"Direct Messages": "Přímé zprávy",
|
||||
"Group Messages": "Group Messages",
|
||||
"Group Messages — New Group Creation": "Group Messages — New Group Creation",
|
||||
"Group Messages — Join Group": "Group Messages — Join Group",
|
||||
"direct_messages_with": "Direct messages with %{username}",
|
||||
"Disable": "Vypnuto",
|
||||
"Display mentions to @": "Zobrazit zmínky o @",
|
||||
@ -3538,6 +3748,16 @@ if(preferredLanguage == "cs"){
|
||||
"Network status": "Stav sítě",
|
||||
"New direct message...": "Nová přímá zpráva...",
|
||||
"New Post...": "Nový příspěvek...",
|
||||
"New group": "New group",
|
||||
"Group description": "Group description",
|
||||
"Peers to invite": "Peers to invite",
|
||||
"Join group": "Join group",
|
||||
"Select group(s)": "Select group(s)",
|
||||
"Create": "Create",
|
||||
"Join": "Join",
|
||||
"Invite": "Invite",
|
||||
"Invite peers": "Invite peers",
|
||||
"Leave group": "Leave group",
|
||||
"You got": "Máte",
|
||||
"in postboard": "na nástěnce",
|
||||
"in search result": "ve výsledcích hledání",
|
||||
@ -3545,6 +3765,7 @@ if(preferredLanguage == "cs"){
|
||||
"new_posts": "%{smart_count} nový příspěvek |||| %{smart_count} nové příspěvky |||| %{smart_count} nových příspěvků",
|
||||
"new_mentions": "%{smart_count} novou zmínku |||| %{smart_count} nové zmínky |||| %{smart_count} nových zmínek",
|
||||
"new_direct_messages": "%{smart_count} novou přímou zprávu |||| %{smart_count} nové přímé zprávy |||| %{smart_count} nových přímých zpráv",
|
||||
"new_group_messages": "%{smart_count} new group message |||| %{smart_count} new group messages",
|
||||
"nobody": "nikdo", // used to promote a post without attaching the user
|
||||
"Not available": "Tuto přezdívku již někdo používá", // username is not available
|
||||
"notify_desktop_error": "Twisteru se nepodařilo zobrazit upozornění na ploše: došlo k neznámé chybě.",
|
||||
|
@ -142,12 +142,15 @@ var MAL = function()
|
||||
|
||||
// how do we map usernames into urls
|
||||
this.userUrl = function(username) {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
return "#profile?user=" + username;
|
||||
} else {
|
||||
return "#profile?user=" + username;
|
||||
}
|
||||
}
|
||||
//if( $.hasOwnProperty("mobile") ) {
|
||||
// return "#profile?user=" + username;
|
||||
//} else {
|
||||
if (username[0] === '*')
|
||||
return "#profile?group=" + username;
|
||||
else
|
||||
return "#profile?user=" + username;
|
||||
//}
|
||||
};
|
||||
|
||||
// recover username from url (only for hash)
|
||||
this.urlToUser = function(url) {
|
||||
@ -184,13 +187,13 @@ var MAL = function()
|
||||
}
|
||||
}
|
||||
|
||||
this.dmchatUrl = function(username) {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
return "#dmchat?user=" + username;
|
||||
this.dmchatUrl = function (alias) {
|
||||
if ($.hasOwnProperty('mobile')) {
|
||||
return '#dmchat?user=' + alias;
|
||||
} else {
|
||||
return "#directmessages?user=" + username;
|
||||
return '#directmessages?' + (alias[0] === '*' ? 'group' : 'user') + '=' + alias;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.followingUrl = function(username) {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
@ -275,6 +278,18 @@ var MAL = function()
|
||||
}
|
||||
}
|
||||
|
||||
this.updateNewGroupDMsUI = function(newDMs) {
|
||||
if( $.hasOwnProperty('mobile') ) {
|
||||
} else {
|
||||
var DMsCounter = $('.userMenu-groupmessages .messages-qtd');
|
||||
if (newDMs) {
|
||||
DMsCounter.text(newDMs).fadeIn();
|
||||
} else {
|
||||
DMsCounter.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.updateMyOwnPostCount = function(numPosts) {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
console.log("FIXME: implement MAL_updateMyOwnPostCount");
|
||||
@ -327,29 +342,29 @@ var MAL = function()
|
||||
}
|
||||
}
|
||||
|
||||
this.showDMchat = function(username) {
|
||||
if (username) {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
$.mobile.navigate( this.dmchatUrl(username) );
|
||||
this.showDMchat = function(req) {
|
||||
if (req.alias) {
|
||||
if ($.hasOwnProperty('mobile')) {
|
||||
$.mobile.navigate(this.dmchatUrl(req.alias));
|
||||
} else {
|
||||
if ($(".postboard").length) {
|
||||
window.location.hash = this.dmchatUrl(username);
|
||||
if ($('.postboard').length) {
|
||||
window.location.hash = this.dmchatUrl(req.alias);
|
||||
} else {
|
||||
window.location.href = 'home.html'+this.dmchatUrl(username);
|
||||
window.location.href = 'home.html'+this.dmchatUrl(req.alias);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
$.mobile.navigate( '#directmsg' );
|
||||
if ($.hasOwnProperty('mobile')) {
|
||||
$.mobile.navigate('#' + (req.group ? '' : 'directmsg')); // FIXME add group messages to tmobile
|
||||
} else {
|
||||
if ($(".postboard").length) {
|
||||
window.location.hash = '#directmessages';
|
||||
if ($('.postboard').length) {
|
||||
window.location.hash = '#' + (req.group ? 'groupmessages' : 'directmessages');
|
||||
} else {
|
||||
window.location.href = 'home.html#directmessages';
|
||||
window.location.href = 'home.html#' + (req.group ? 'groupmessages' : 'directmessages');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.setNetworkStatusMsg = function(msg, statusGood) {
|
||||
if( $.hasOwnProperty("mobile") ) {
|
||||
|
@ -432,9 +432,13 @@ function installCreateUserClick() {
|
||||
}
|
||||
|
||||
function installUserSearchHandler() {
|
||||
var $userSearchField = $( ".userMenu-search-field" );
|
||||
$userSearchField.unbind('keyup').keyup( userSearchKeypress );
|
||||
$userSearchField.unbind('click').bind( "click", userSearchKeypress );
|
||||
$('.userMenu-search-field')
|
||||
.off('click input')
|
||||
.on('keyup', userSearchEnter)
|
||||
.on('click keyup',
|
||||
{hashtags: true, handleRet: processDropdownUserResults,
|
||||
handleRetZero: closeSearchDialog}, userSearchKeypress)
|
||||
;
|
||||
}
|
||||
|
||||
function installProfileEditHandlers() {
|
||||
|
@ -3,7 +3,9 @@
|
||||
//
|
||||
// Handle direct messages modal
|
||||
|
||||
function requestDMsnippetList(dmThreadList) {
|
||||
var _groupMsgInviteToGroupQueue = [];
|
||||
|
||||
function requestDMsnippetList(dmThreadList, forGroup) {
|
||||
var followList = [];
|
||||
for (var i = 0; i < followingUsers.length; i++)
|
||||
followList.push({username:followingUsers[i]});
|
||||
@ -11,15 +13,19 @@ function requestDMsnippetList(dmThreadList) {
|
||||
followList.push({username:groupChatAliases[i]});
|
||||
|
||||
twisterRpc('getdirectmsgs', [defaultScreenName, 1, followList],
|
||||
function(req, ret) {processDMsnippet(ret, dmThreadList);}, dmThreadList,
|
||||
function(req, ret) {processDMsnippet(ret, req.dmThreadList, req.forGroup);},
|
||||
{dmThreadList: dmThreadList, forGroup: forGroup},
|
||||
function(req, ret) {console.log('ajax error:' + ret);}, null
|
||||
);
|
||||
}
|
||||
|
||||
function processDMsnippet(dmUsers, dmThreadList) {
|
||||
function processDMsnippet(dmUsers, dmThreadList, forGroup) {
|
||||
dmThreadList.empty();
|
||||
|
||||
for (var u in dmUsers) {
|
||||
if ((forGroup && u[0] !== '*') || (!forGroup && u[0] === '*'))
|
||||
continue;
|
||||
|
||||
// convert snipped to html and add it to date-sorted list
|
||||
var dmItem = dmDataToSnippetItem(dmUsers[u][0], u);
|
||||
var timeDmItem = parseInt(dmItem.attr('data-time'));
|
||||
@ -75,7 +81,7 @@ function processDmConversation(postboard, dm_screenname, dmData) {
|
||||
var dmList = dmData[dm_screenname];
|
||||
if (dmList.length) {
|
||||
for (var i = 0; i < dmList.length; i++) {
|
||||
var dmItem = dmDataToConversationItem(dmList[i], defaultScreenName, dm_screenname)
|
||||
var dmItem = postToElemDM(dmList[i], defaultScreenName, dm_screenname)
|
||||
.attr('data-id', dmList[i].id)
|
||||
.appendTo(postboard)
|
||||
;
|
||||
@ -96,7 +102,7 @@ function directMsgSubmit(e) {
|
||||
|
||||
replyText.siblings('#post-preview').hide();
|
||||
|
||||
newDirectMsg(replyText.val(), $('.directMessages').attr('data-dm-screen-name'));
|
||||
newDirectMsg(replyText.val(), $('.directMessages').attr('data-screen-name'));
|
||||
|
||||
replyText.val('');
|
||||
}
|
||||
@ -137,7 +143,7 @@ function directMessagesPopup() {
|
||||
return;
|
||||
}
|
||||
|
||||
modal = openModal({
|
||||
var modal = openModal({
|
||||
classAdd: 'directMessages',
|
||||
content: $('.direct-messages-template').children().clone(true),
|
||||
title: polyglot.t('Direct Messages')
|
||||
@ -150,7 +156,8 @@ function directMessagesPopup() {
|
||||
.attr('title', polyglot.t('Mark all as read'))
|
||||
.on('click', function() {
|
||||
for (var user in _newDMsPerUser) {
|
||||
_newDMsPerUser[user] = 0;
|
||||
if (user[0] !== '*')
|
||||
_newDMsPerUser[user] = 0;
|
||||
}
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
@ -164,13 +171,13 @@ function openDmWithUserModal(dm_screenname) {
|
||||
return;
|
||||
}
|
||||
|
||||
modal = openModal({
|
||||
var modal = openModal({
|
||||
classAdd: 'directMessages',
|
||||
content: $('.messages-thread-template').children().clone(true),
|
||||
title: polyglot.t('direct_messages_with', {username: '<span>' + dm_screenname + '</span>'})
|
||||
});
|
||||
|
||||
modal.self.attr('data-dm-screen-name', dm_screenname);
|
||||
modal.self.attr('data-screen-name', dm_screenname);
|
||||
|
||||
if (dm_screenname.length && dm_screenname[0] === '*')
|
||||
getGroupChatName(dm_screenname, modal.self.find('.modal-header h3 span'));
|
||||
@ -183,12 +190,260 @@ function openDmWithUserModal(dm_screenname) {
|
||||
.addClass('open').appendTo(modal.content).fadeIn('fast');
|
||||
}
|
||||
|
||||
function openGroupMessagesModal(groupAlias) {
|
||||
if (!defaultScreenName) {
|
||||
alert(polyglot.t('You have to log in to use group messages.'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof groupAlias === 'undefined') {
|
||||
var modal = openModal({
|
||||
classAdd: 'directMessages groupMessages',
|
||||
content: $('.direct-messages-template').children().clone(true),
|
||||
title: polyglot.t('Group Messages')
|
||||
});
|
||||
|
||||
modal.content.prepend($('#group-messages-profile-modal-control-template').children().clone(true));
|
||||
|
||||
requestDMsnippetList(modal.content.find('.direct-messages-list'), true);
|
||||
|
||||
modal.self.find('.mark-all-as-read')
|
||||
.css('display', 'inline')
|
||||
.attr('title', polyglot.t('Mark all as read'))
|
||||
.on('click', function() {
|
||||
for (var user in _newDMsPerUser) {
|
||||
if (user[0] === '*')
|
||||
_newDMsPerUser[user] = 0;
|
||||
}
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewGroupDMsUI(getNewGroupDMsCount());
|
||||
})
|
||||
;
|
||||
} else {
|
||||
var modal = openModal({
|
||||
classAdd: 'directMessages groupMessages',
|
||||
title: polyglot.t('direct_messages_with', {username: '<span>' + groupAlias + '</span>'})
|
||||
});
|
||||
|
||||
modal.self.attr('data-screen-name', groupAlias);
|
||||
|
||||
getGroupChatName(groupAlias, modal.self.find('.modal-header h3 span'));
|
||||
|
||||
groupMsgGetGroupInfo(groupAlias,
|
||||
function(req, ret) {
|
||||
if (ret && ret.members.indexOf(defaultScreenName) !== -1) {
|
||||
req.modal.content.append($('.messages-thread-template').children().clone(true));
|
||||
requestDmConversationModal(req.modal.content.find('.direct-messages-thread'), req.groupAlias);
|
||||
|
||||
var control = $('#group-messages-messages-modal-control-template').children().clone(true)
|
||||
.appendTo(req.modal.content);
|
||||
control.find('.profile').on('click', {groupAlias: req.groupAlias},
|
||||
function (event) {window.location.href = $.MAL.userUrl(event.data.groupAlias);}
|
||||
);
|
||||
|
||||
$('.dm-form-template').children().clone(true)
|
||||
.addClass('open').appendTo(req.modal.content).fadeIn('fast');
|
||||
}
|
||||
}, {groupAlias: groupAlias, modal: modal}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function openGroupMessagesNewGroupModal() {
|
||||
if (!defaultScreenName) {
|
||||
alert(polyglot.t('You have to log in to use group messages.'));
|
||||
return;
|
||||
}
|
||||
|
||||
var modal = openModal({
|
||||
classAdd: 'group-messages-new-group',
|
||||
content: $('#group-messages-new-group-template').children().clone(true),
|
||||
title: polyglot.t('Group Messages — New Group Creation')
|
||||
});
|
||||
|
||||
modal.content.find('.description').on('input',
|
||||
{parentSelector: '.module', enterSelector: '.create'}, inputEnterActivator);
|
||||
modal.content.find('.invite')
|
||||
.on('input', {handleRet: groupMsgInviteFormInputHandleUserSearchRet}, userSearchKeypress)
|
||||
.on('focus', {req: groupMsgInviteFormInputSetTextcompleteReq}, setTextcompleteOnEventTarget)
|
||||
.on('focusout', unsetTextcompleteOnEventTarget)
|
||||
;
|
||||
modal.content.find('.create').on('click', function (event) {
|
||||
var elemEvent = $(event.target);
|
||||
var elemForm = elemEvent.parents('.module')
|
||||
|
||||
var peersToInvite = elemForm.find('.invite').val().toLowerCase().match(/@\w+/g);
|
||||
if (peersToInvite)
|
||||
peersToInvite = peersToInvite.join('').slice(1).split('@');
|
||||
|
||||
groupMsgCreateGroup(elemForm.find('.description').val(), peersToInvite);
|
||||
|
||||
closeModal();
|
||||
});
|
||||
}
|
||||
|
||||
function openGroupMessagesJoinGroupModal() {
|
||||
if (!defaultScreenName) {
|
||||
alert(polyglot.t('You have to log in to use group messages.'));
|
||||
return;
|
||||
}
|
||||
|
||||
var modal = openModal({
|
||||
classAdd: 'group-messages-join-group',
|
||||
content: $('#group-messages-join-group-template').children().clone(true),
|
||||
title: polyglot.t('Group Messages — Join Group')
|
||||
});
|
||||
|
||||
var elemGroupsList = modal.content.find('.groups-list');
|
||||
var elemGroupTemplate = $('#groups-list-item-template').children();
|
||||
groupMsgGetGroupsForPeer(defaultScreenName,
|
||||
function(req, ret) {
|
||||
if (ret) {
|
||||
for (var i = 0; i < groupChatAliases.length; i++) {
|
||||
if (ret.indexOf(groupChatAliases[i]) === -1) {
|
||||
var item = req.elemGroupTemplate.clone(true).appendTo(req.elemGroupsList);
|
||||
|
||||
item.find('input')
|
||||
.attr('data-screen-name', groupChatAliases[i])
|
||||
.on('click', function (event) {
|
||||
var elemEvent = $(event.target);
|
||||
elemEvent.parents('.module').find('.join')
|
||||
.attr('disabled',
|
||||
!elemEvent.parents('.groups-list').find('input:checked').length);
|
||||
})
|
||||
;
|
||||
item.find('.twister-user-name')
|
||||
.text(groupChatAliases[i])
|
||||
.attr('href', $.MAL.userUrl(groupChatAliases[i]))
|
||||
;
|
||||
getGroupChatName(groupChatAliases[i], item.find('.description')); // FIXME
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {elemGroupsList: elemGroupsList, elemGroupTemplate: elemGroupTemplate}
|
||||
);
|
||||
|
||||
modal.content.find('.join').on('click', function (event) {
|
||||
var elemEvent = $(event.target);
|
||||
var groups = elemEvent.parents('.module').find('.groups-list input:checked');
|
||||
for (var i = 0; i < groups.length; i++)
|
||||
groupMsgInviteToGroup(groups[i].getAttribute('data-screen-name'), [defaultScreenName]);
|
||||
|
||||
closeModal();
|
||||
});
|
||||
|
||||
modal.content.find('.secret-key-import, .username-import').on('input', importSecretKeypress);
|
||||
|
||||
modal.content.find('.import-secret-key').on('click', function (event) {
|
||||
var elemModule = $(event.target).parents('.module');
|
||||
var groupAlias = elemModule.find('.username-import').val().toLowerCase();
|
||||
var secretKey = elemModule.find('.secret-key-import').val();
|
||||
|
||||
twisterRpc('importprivkey', [secretKey, groupAlias],
|
||||
function(req, ret) {
|
||||
groupMsgInviteToGroup(req.groupAlias, [defaultScreenName]);
|
||||
closeModal();
|
||||
}, {groupAlias: groupAlias},
|
||||
function(req, ret) {
|
||||
alert(polyglot.t('Error in \'importprivkey\'', {rpc: ret.message}));
|
||||
}, null
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function groupMsgCreateGroup(description, peersToInvite) {
|
||||
if (!peersToInvite)
|
||||
peersToInvite = [];
|
||||
|
||||
twisterRpc('creategroup', [description],
|
||||
function(peersToInvite, ret) {
|
||||
groupMsgInviteToGroup(ret, peersToInvite.push(defaultScreenName));
|
||||
}, peersToInvite,
|
||||
function(req, ret) {
|
||||
alert(polyglot.t('error', {error: 'can\'t create group — ' + ret.message}));
|
||||
}, null
|
||||
);
|
||||
}
|
||||
|
||||
function groupMsgInviteToGroup(groupAlias, peersToInvite) {
|
||||
_groupMsgInviteToGroupQueue.push({groupAlias: groupAlias, peersToInvite: peersToInvite});
|
||||
|
||||
if (_groupMsgInviteToGroupQueue.length === 1)
|
||||
doGroupMsgInviteToGroup();
|
||||
}
|
||||
|
||||
function doGroupMsgInviteToGroup() {
|
||||
twisterRpc('newgroupinvite',
|
||||
[defaultScreenName, lastPostId + 1,
|
||||
_groupMsgInviteToGroupQueue[0].groupAlias, _groupMsgInviteToGroupQueue[0].peersToInvite],
|
||||
function(req, ret) {
|
||||
incLastPostId();
|
||||
_groupMsgInviteToGroupQueue.shift();
|
||||
if (_groupMsgInviteToGroupQueue.length)
|
||||
setTimeout(doGroupMsgInviteToGroup, 200);
|
||||
}, null,
|
||||
function(req, ret) {
|
||||
alert(polyglot.t('error',
|
||||
{error: 'can\'t invite ' + req[1] + ' to ' + req[0] + ' group — ' + ret.message}));
|
||||
_groupMsgInviteToGroupQueue.shift();
|
||||
if (_groupMsgInviteToGroupQueue.length)
|
||||
setTimeout(doGroupMsgInviteToGroup, 200);
|
||||
}, [_groupMsgInviteToGroupQueue[0].groupAlias, _groupMsgInviteToGroupQueue[0].peersToInvite]
|
||||
);
|
||||
}
|
||||
|
||||
function groupMsgLeaveGroup(groupAlias, cbFunc, cbArgs) {
|
||||
twisterRpc('leavegroup', [defaultScreenName, groupAlias],
|
||||
cbFunc, cbArgs,
|
||||
function(req, ret) {alert(polyglot.t('error', {error: 'can\'t leave group — ' + ret.message}));}, null
|
||||
);
|
||||
}
|
||||
|
||||
function groupMsgGetGroupsForPeer(peer, cbFunc, cbArgs) {
|
||||
twisterRpc('listgroups', [peer],
|
||||
cbFunc, cbArgs,
|
||||
function(req, ret) {alert(polyglot.t('error', {error: 'can\'t list groups — ' + ret.message}));}, null
|
||||
);
|
||||
}
|
||||
|
||||
function groupMsgGetGroupInfo(groupAlias, cbFunc, cbArgs) {
|
||||
twisterRpc('getgroupinfo', [groupAlias],
|
||||
cbFunc, cbArgs,
|
||||
function(req, ret) {alert(polyglot.t('error', {error: 'can\'t get group info — ' + ret.message}));}, null
|
||||
);
|
||||
}
|
||||
|
||||
function groupMsgInviteFormInputHandleUserSearchRet() {
|
||||
// working with global results because of search function in textcomplete strategy, see groupMsgInviteFormInputSetTextcompleteReq
|
||||
var i = _lastSearchUsersResults.indexOf(defaultScreenName);
|
||||
if (i !== -1)
|
||||
_lastSearchUsersResults.splice(i, 1);
|
||||
}
|
||||
|
||||
function groupMsgInviteFormInputSetTextcompleteReq() {
|
||||
return [{
|
||||
match: /\B@(\w*)$/,
|
||||
search: function (term, callback) {
|
||||
callback($.map(_lastSearchUsersResults, function (mention) {
|
||||
return mention.indexOf(term) === 0 ? mention : null;
|
||||
}));
|
||||
},
|
||||
index: 1,
|
||||
replace: function (mention) {
|
||||
return '@'+mention+' ';
|
||||
}
|
||||
}]
|
||||
}
|
||||
|
||||
function initInterfaceDirectMsg() {
|
||||
$('.direct-messages').attr('href','#directmessages');
|
||||
$('.userMenu-messages a').attr('href','#directmessages');
|
||||
$('.direct-messages').attr('href', '#directmessages');
|
||||
$('.userMenu-messages a').attr('href', '#directmessages');
|
||||
$('.groupmessages').attr('href', '#groupmessages');
|
||||
$('.userMenu-groupmessages a').attr('href', '#groupmessages');
|
||||
|
||||
$('#dm-snippet-template').on('click', function() {
|
||||
window.location.hash = '#directmessages?user=' + $(this).attr('data-dm-screen-name');
|
||||
var alias = $(this).attr('data-screen-name');
|
||||
window.location.hash = '#directmessages?' + (alias[0] === '*' ? 'group' : 'user') + '=' + alias;
|
||||
});
|
||||
|
||||
$('.dm-submit').on('click', directMsgSubmit);
|
||||
@ -196,5 +451,72 @@ function initInterfaceDirectMsg() {
|
||||
window.location.hash = '#directmessages?user=' +
|
||||
$(this).closest('[data-screen-name]').attr('data-screen-name');
|
||||
});
|
||||
}
|
||||
|
||||
$('.group-messages-control .invite').on('click', function (event) {
|
||||
$(event.target).siblings('.invite-form').toggle();
|
||||
});
|
||||
|
||||
$('.group-messages-control .invite-form textarea')
|
||||
.on('input', {parentSelector: '.invite-form', enterSelector: 'button',
|
||||
handleRet: groupMsgInviteFormInputHandleUserSearchRet},
|
||||
function (event) {
|
||||
inputEnterActivator(event);
|
||||
userSearchKeypress(event);
|
||||
}
|
||||
)
|
||||
.on('focus', {req: groupMsgInviteFormInputSetTextcompleteReq}, setTextcompleteOnEventTarget)
|
||||
.on('focusout', unsetTextcompleteOnEventTarget)
|
||||
;
|
||||
|
||||
$('.group-messages-control .invite-form button').on('click', function (event) {
|
||||
var elemEvent = $(event.target);
|
||||
var elemInput = elemEvent.siblings('textarea');
|
||||
var peersToInvite = elemInput.val().toLowerCase().match(/@\w+/g);
|
||||
if (peersToInvite)
|
||||
peersToInvite = peersToInvite.join('').slice(1).split('@');
|
||||
|
||||
groupMsgInviteToGroup(elemEvent.closest('[data-screen-name]').attr('data-screen-name'),
|
||||
peersToInvite);
|
||||
|
||||
elemInput.val('');
|
||||
elemEvent.parents('.invite-form').toggle();
|
||||
|
||||
// TODO reload group members list
|
||||
});
|
||||
|
||||
$('.group-messages-control .join').on('click', function () {
|
||||
window.location.hash = '#groupmessages+joingroup';
|
||||
});
|
||||
|
||||
$('.group-messages-control .leave').on('click', function (event) {
|
||||
var elemEvent = $(event.target);
|
||||
var groupAlias = elemEvent.closest('[data-screen-name]').attr('data-screen-name');
|
||||
confirmPopup(event, {
|
||||
titleTxt: polyglot.t('сonfirm_group_leaving_header'),
|
||||
messageTxt: polyglot.t('сonfirm_group_leaving_body', {alias: groupAlias}),
|
||||
confirmFunc: function (groupAlias) {
|
||||
groupMsgLeaveGroup(groupAlias, function () {history.back();});
|
||||
},
|
||||
confirmFuncArgs: groupAlias
|
||||
});
|
||||
});
|
||||
|
||||
$('.group-messages-control .new').on('click', function () {
|
||||
window.location.hash = '#groupmessages+newgroup';
|
||||
});
|
||||
|
||||
$('.group-messages-control .secret-key').on('click', promptCopyAttrData);
|
||||
|
||||
$('.group-messages-control .show-secret-key').on('click', function (event) {
|
||||
var elemEvent = $(event.target);
|
||||
var elemSecretKey = elemEvent.siblings('.secret-key')
|
||||
.toggle();
|
||||
if (elemSecretKey.css('display') !== 'none') {
|
||||
dumpPrivkey(elemEvent.closest('[data-screen-name]').attr('data-screen-name'),
|
||||
function(req, ret) {req.text(ret).attr('data', ret);},
|
||||
elemSecretKey
|
||||
);
|
||||
} else
|
||||
elemSecretKey.text('').attr('data', '');
|
||||
});
|
||||
}
|
||||
|
@ -10,9 +10,10 @@ var _followsPerPage = 200;
|
||||
var _maxFollowingPages = 50;
|
||||
var _followingSeqNum = 0;
|
||||
var _followSuggestions = [];
|
||||
var _searchingPartialUsers = "";
|
||||
var _searchingPartialName = '';
|
||||
var _searchKeypressTimer = undefined;
|
||||
var _lastSearchUsersResults = [];
|
||||
var _lastSearchUsersResultsRemovedFromDHTgetQueue = true;
|
||||
var _lastLoadFromDhtTime = 0;
|
||||
|
||||
var twisterFollowingO = undefined;
|
||||
@ -578,101 +579,96 @@ function processWhoToFollowSuggestion(suggestion, followedBy) {
|
||||
console.warn('nothing to proceed: no twisters to follow was suggested');
|
||||
}
|
||||
|
||||
function closeSearchDialog()
|
||||
{
|
||||
$(".userMenu-search-field").siblings().slideUp( "fast" );
|
||||
removeUsersFromDhtgetQueue( _lastSearchUsersResults );
|
||||
_lastSearchUsersResults = [];
|
||||
function closeSearchDialog(event) {
|
||||
var elemEvent = event ? $(event.target) : this;
|
||||
elemEvent.siblings('.search-results').slideUp('fast');
|
||||
if (!_lastSearchUsersResultsRemovedFromDHTgetQueue) {
|
||||
removeUsersFromDhtgetQueue(_lastSearchUsersResults);
|
||||
_lastSearchUsersResultsRemovedFromDHTgetQueue = true;
|
||||
}
|
||||
}
|
||||
|
||||
function userSearchKeypress(event) {
|
||||
var partialName = $(".userMenu-search-field").val().toLowerCase();
|
||||
var searchResults = $(".search-results");
|
||||
var elemEvent = $(event.target);
|
||||
var partialName = elemEvent.val().toLowerCase();
|
||||
|
||||
if ( partialName.substr( 0, 1 ) == '#' ) {
|
||||
|
||||
if(searchResults.is(":visible"))
|
||||
searchResults.slideUp( "fast" );
|
||||
|
||||
if ( event.which == 13 )
|
||||
window.location.hash = '#hashtag?hashtag=' + encodeURIComponent(partialName.substr(1));
|
||||
if (event.data.hashtags && partialName[0] === '#') {
|
||||
var searchResults = elemEvent.siblings('.search-results');
|
||||
if (searchResults.is(':visible'))
|
||||
searchResults.slideUp('fast');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( partialName.substr( 0, 1 ) == '@' ) {
|
||||
partialName = partialName.substr( 1 );
|
||||
}
|
||||
var words = partialName.match(/\b\w+/g);
|
||||
if (words && words.length) {
|
||||
partialName = words.pop();
|
||||
|
||||
//var partialName = item.val();
|
||||
|
||||
if( !partialName.length ) {
|
||||
closeSearchDialog();
|
||||
} else {
|
||||
if( _searchKeypressTimer !== undefined )
|
||||
if (typeof _searchKeypressTimer !== 'undefined')
|
||||
clearTimeout(_searchKeypressTimer);
|
||||
|
||||
if( _searchingPartialUsers.length ) {
|
||||
_searchingPartialUsers = partialName;
|
||||
if (_searchingPartialName.length) {
|
||||
_searchingPartialName = partialName;
|
||||
} else {
|
||||
_searchKeypressTimer = setTimeout( function() {
|
||||
_searchKeypressTimer = setTimeout(function () {
|
||||
_searchKeypressTimer = undefined;
|
||||
searchPartialUsername(partialName);
|
||||
event.data.partialName = partialName;
|
||||
searchPartialUsername(event);
|
||||
}, 600);
|
||||
}
|
||||
}
|
||||
} else
|
||||
closeSearchDialog(event);
|
||||
}
|
||||
|
||||
function searchPartialUsername(partialName) {
|
||||
_searchingPartialUsers = partialName;
|
||||
twisterRpc("listusernamespartial", [partialName,10],
|
||||
function(partialName, ret) {
|
||||
processDropdownUserResults(partialName, ret)
|
||||
}, partialName,
|
||||
function(cbArg, ret) {
|
||||
console.log("ajax error:" + ret);
|
||||
}, {});
|
||||
function searchPartialUsername(event) {
|
||||
_searchingPartialName = event.data.partialName;
|
||||
twisterRpc('listusernamespartial', [event.data.partialName, 10],
|
||||
function(event, ret) {
|
||||
if (event.data.partialName !== _searchingPartialName)
|
||||
setTimeout(searchPartialUsername, 100, event);
|
||||
else {
|
||||
if (!_lastSearchUsersResultsRemovedFromDHTgetQueue)
|
||||
removeUsersFromDhtgetQueue(_lastSearchUsersResults);
|
||||
else
|
||||
_lastSearchUsersResultsRemovedFromDHTgetQueue = false;
|
||||
_lastSearchUsersResults = ret;
|
||||
|
||||
if (ret && ret.length) {
|
||||
if (event.data.handleRet)
|
||||
event.data.handleRet(event, ret);
|
||||
} else {
|
||||
if (event.data.handleRetZero)
|
||||
event.data.handleRetZero(event);
|
||||
}
|
||||
|
||||
_searchingPartialName = '';
|
||||
}
|
||||
}, event,
|
||||
function(req, ret) {console.warn('ajax error:' + ret.message);}, null
|
||||
);
|
||||
}
|
||||
|
||||
function processDropdownUserResults(partialName, results){
|
||||
function processDropdownUserResults(event, results) {
|
||||
var container = $('.userMenu-search-profiles').empty();
|
||||
var template = $('#search-profile-template').children();
|
||||
|
||||
if( partialName != _searchingPartialUsers ) {
|
||||
searchPartialUsername( _searchingPartialUsers );
|
||||
return;
|
||||
for (var i = 0; i < results.length; i++) {
|
||||
if (results[i] === defaultScreenName)
|
||||
continue;
|
||||
|
||||
var item = template.clone(true);
|
||||
item.find('.mini-profile-info').attr('data-screen-name', results[i]);
|
||||
item.find('.mini-screen-name b').text(results[i]);
|
||||
item.find('a.open-profile-modal').attr('href', $.MAL.userUrl(results[i]));
|
||||
getAvatar(results[i], item.find('.mini-profile-photo'));
|
||||
getFullname(results[i], item.find('.mini-profile-name'));
|
||||
item.appendTo(container);
|
||||
|
||||
if (followingUsers.indexOf(results[i]) !== -1)
|
||||
toggleFollowButton(results[i], true);
|
||||
}
|
||||
|
||||
removeUsersFromDhtgetQueue( _lastSearchUsersResults );
|
||||
_lastSearchUsersResults = results;
|
||||
|
||||
var typeaheadAccounts = $(".userMenu-search-profiles");
|
||||
var template = $("#search-profile-template").detach();
|
||||
|
||||
typeaheadAccounts.empty();
|
||||
typeaheadAccounts.append(template);
|
||||
|
||||
if( results.length ) {
|
||||
for( var i = 0; i < results.length; i++ ) {
|
||||
if( results[i] == defaultScreenName )
|
||||
continue;
|
||||
|
||||
var resItem = template.clone(true);
|
||||
resItem.removeAttr('id');
|
||||
resItem.show();
|
||||
resItem.find(".mini-profile-info").attr("data-screen-name", results[i]);
|
||||
resItem.find(".mini-screen-name b").text(results[i]);
|
||||
resItem.find("a.open-profile-modal").attr("href",$.MAL.userUrl(results[i]));
|
||||
getAvatar(results[i],resItem.find(".mini-profile-photo"));
|
||||
getFullname(results[i],resItem.find(".mini-profile-name"));
|
||||
resItem.appendTo(typeaheadAccounts);
|
||||
if (followingUsers.indexOf(results[i]) >= 0)
|
||||
toggleFollowButton(results[i], true);
|
||||
}
|
||||
|
||||
$.MAL.searchUserListLoaded();
|
||||
} else {
|
||||
closeSearchDialog();
|
||||
}
|
||||
_searchingPartialUsers = "";
|
||||
$.MAL.searchUserListLoaded();
|
||||
}
|
||||
|
||||
function userClickFollow(e) {
|
||||
@ -700,22 +696,33 @@ function userClickFollow(e) {
|
||||
}
|
||||
|
||||
function initUserSearch() {
|
||||
var $userSearchField = $( ".userMenu-search-field" );
|
||||
$userSearchField.keyup( userSearchKeypress );
|
||||
$userSearchField.bind( "click", userSearchKeypress );
|
||||
$(".userMenu-search").clickoutside( closeSearchDialog );
|
||||
var elem = $('.userMenu-search-field')
|
||||
.on('click input',
|
||||
{hashtags: true, handleRet: processDropdownUserResults,
|
||||
handleRetZero: closeSearchDialog}, userSearchKeypress)
|
||||
.on('keyup', userSearchEnter)
|
||||
;
|
||||
$('.userMenu-search').clickoutside(closeSearchDialog.bind(elem));
|
||||
|
||||
// following stuff should be moved to special function
|
||||
$('button.follow').on('click', userClickFollow);
|
||||
$('.following-config-method-buttons .public-following')
|
||||
.on('click', function(e) {
|
||||
setFollowingMethod(e);
|
||||
closeModalHandler('.prompt-wrapper');
|
||||
closePrompt();
|
||||
window.setTimeout(loadModalFromHash, 500); // delay reload so dhtput may do it's job
|
||||
})
|
||||
;
|
||||
}
|
||||
|
||||
function userSearchEnter(event) {
|
||||
if (event.which === 13) {
|
||||
var str = $(event.target).val().toLowerCase().trim();
|
||||
if (str[0] === '#')
|
||||
window.location.hash = '#hashtag?hashtag=' + encodeURIComponent(str.slice(1));
|
||||
}
|
||||
}
|
||||
|
||||
function followingListPublicCheckbox(e) {
|
||||
e.stopPropagation();
|
||||
|
||||
|
@ -35,22 +35,6 @@ $(document).ready(function() {
|
||||
// format "userpost" to html element
|
||||
// kind = "original"/"ancestor"/"descendant"
|
||||
function postToElem(post, kind, promoted) {
|
||||
|
||||
function setPostCommon(elem, username, time) {
|
||||
var postInfoName = elem.find('.post-info-name')
|
||||
.text(username).attr('href', $.MAL.userUrl(username));
|
||||
|
||||
getFullname(username, postInfoName);
|
||||
//elem.find('.post-info-tag').text("@" + username); // FIXME
|
||||
getAvatar(username, elem.find('.avatar'));
|
||||
|
||||
elem.find('.post-info-time')
|
||||
.attr('title', timeSincePost(time))
|
||||
.find('span:last')
|
||||
.text(timeGmtToText(time))
|
||||
;
|
||||
}
|
||||
|
||||
/*
|
||||
"userpost" :
|
||||
{
|
||||
@ -170,19 +154,22 @@ function postToElem(post, kind, promoted) {
|
||||
if (typeof retweeted_by !== 'undefined') {
|
||||
var postContext = elem.find('.post-context');
|
||||
if (userpost.msg) {
|
||||
postContext.append(_templatePostRtReference.clone(true))
|
||||
.find('.post-rt-reference')
|
||||
.attr('data-screen-name', rt.n)
|
||||
.attr('data-id', rt.k)
|
||||
.attr('data-userpost', $.toJSON({userpost: rt, sig_userpost: userpost.sig_rt}))
|
||||
.find('.post-text').html(htmlFormatMsg(rt.msg).html)
|
||||
;
|
||||
setPostCommon(postContext, rt.n, rt.time);
|
||||
setPostReference(postContext, rt, userpost.sig_rt);
|
||||
} else {
|
||||
postContext.append(_templatePostRtBy.clone(true))
|
||||
.find('.post-retransmited-by')
|
||||
.attr('href', $.MAL.userUrl(retweeted_by)).text('@' + retweeted_by)
|
||||
;
|
||||
// let's check original post and grab some possible RT
|
||||
dhtget(username, 'post' + k, 's',
|
||||
function(args, post) {
|
||||
if (post && post.userpost.msg && post.userpost.rt) {
|
||||
var postContext = $('<div class="post-context"></div>');
|
||||
setPostReference(postContext, post.userpost.rt, post.userpost.sig_rt);
|
||||
args.elem.find('.post-text').after(postContext);
|
||||
}
|
||||
}, {elem: elem}
|
||||
);
|
||||
}
|
||||
postContext.show();
|
||||
}
|
||||
@ -226,6 +213,32 @@ function postToElem(post, kind, promoted) {
|
||||
return elem;
|
||||
}
|
||||
|
||||
function setPostCommon(elem, username, time) {
|
||||
var postInfoName = elem.find('.post-info-name')
|
||||
.text(username).attr('href', $.MAL.userUrl(username));
|
||||
|
||||
getFullname(username, postInfoName);
|
||||
//elem.find('.post-info-tag').text("@" + username); // FIXME
|
||||
getAvatar(username, elem.find('.avatar'));
|
||||
|
||||
elem.find('.post-info-time')
|
||||
.attr('title', timeSincePost(time))
|
||||
.find('span:last')
|
||||
.text(timeGmtToText(time))
|
||||
;
|
||||
}
|
||||
|
||||
function setPostReference(elem, rt, sig_rt) {
|
||||
elem.append(_templatePostRtReference.clone(true))
|
||||
.find('.post-rt-reference')
|
||||
.attr('data-screen-name', rt.n)
|
||||
.attr('data-id', rt.k)
|
||||
.attr('data-userpost', $.toJSON({userpost: rt, sig_userpost: sig_rt}))
|
||||
.find('.post-text').html(htmlFormatMsg(rt.msg).html)
|
||||
;
|
||||
setPostCommon(elem, rt.n, rt.time);
|
||||
}
|
||||
|
||||
function setPostInfoSent(n, k, item) {
|
||||
if( n === defaultScreenName && k >= 0 ) {
|
||||
getPostMaxAvailability(n,k,
|
||||
@ -244,7 +257,7 @@ function setPostInfoSent(n, k, item) {
|
||||
function dmDataToSnippetItem(dmData, remoteUser) {
|
||||
var dmItem = $("#dm-snippet-template").clone(true);
|
||||
dmItem.removeAttr('id');
|
||||
dmItem.attr("data-dm-screen-name",remoteUser);
|
||||
dmItem.attr('data-screen-name', remoteUser);
|
||||
dmItem.attr("data-last_id", dmData.id);
|
||||
dmItem.attr("data-time", dmData.time);
|
||||
|
||||
@ -267,24 +280,31 @@ function dmDataToSnippetItem(dmData, remoteUser) {
|
||||
}
|
||||
|
||||
// format dmdata (returned by getdirectmsgs) to display in conversation thread
|
||||
function dmDataToConversationItem(dmData, localUser, remoteUser) {
|
||||
var from = (dmData.from && dmData.from.length && dmData.from.charCodeAt(0))
|
||||
? dmData.from
|
||||
: (dmData.fromMe ? localUser : remoteUser);
|
||||
var classDm = dmData.fromMe ? "sent" : "received";
|
||||
var dmItem = $("#dm-chat-template").clone(true);
|
||||
dmItem.removeAttr('id');
|
||||
dmItem.addClass(classDm);
|
||||
getAvatar(from, dmItem.find(".post-photo").find("img") );
|
||||
dmItem.find('.post-info-time')
|
||||
function postToElemDM(dmData, localUser, remoteUser) {
|
||||
var senderAlias = (dmData.from && dmData.from.length && dmData.from.charCodeAt(0))
|
||||
? dmData.from : (dmData.fromMe ? localUser : remoteUser);
|
||||
var elem = $('#dm-chat-template').clone(true)
|
||||
.removeAttr('id')
|
||||
.addClass(dmData.fromMe ? 'sent' : 'received')
|
||||
;
|
||||
|
||||
var elemName = elem.find('.post-info-name')
|
||||
.attr('href', $.MAL.userUrl(senderAlias));
|
||||
if (senderAlias[0] === '*' )
|
||||
getGroupChatName(senderAlias, elemName);
|
||||
else
|
||||
getFullname(senderAlias, elemName);
|
||||
|
||||
getAvatar(senderAlias, elem.find('.post-photo').find('img'));
|
||||
elem.find('.post-info-time')
|
||||
.attr('title', timeSincePost(dmData.time))
|
||||
.find('span:last')
|
||||
.text(timeGmtToText(dmData.time))
|
||||
;
|
||||
setPostInfoSent(from,dmData.k,dmItem.find('.post-info-sent'));
|
||||
dmItem.find('.post-text').html(htmlFormatMsg(dmData.text).html);
|
||||
setPostInfoSent(senderAlias, dmData.k, elem.find('.post-info-sent'));
|
||||
elem.find('.post-text').html(htmlFormatMsg(dmData.text).html);
|
||||
|
||||
return dmItem;
|
||||
return elem;
|
||||
}
|
||||
|
||||
// convert message text to html, featuring @users and links formating.
|
||||
|
@ -117,8 +117,25 @@ function requestMentionsCount() {
|
||||
if (newDMs) {
|
||||
$.MAL.soundNotifyDM();
|
||||
|
||||
if ($.Options.showDesktopNotifDMs.val === 'enable')
|
||||
$.MAL.showDesktopNotif(false, polyglot.t('You got')+' '+polyglot.t('new_direct_messages', newDMs)+'.', false, 'twister_notification_new_DMs', $.Options.showDesktopNotifDMsTimer.val, function(){$.MAL.showDMchat()}, false)
|
||||
if ($.Options.showDesktopNotifDMs.val === 'enable') {
|
||||
$.MAL.showDesktopNotif(false,
|
||||
polyglot.t('You got') + ' ' + polyglot.t('new_direct_messages', newDMs) + '.',
|
||||
false, 'twister_notification_new_DMs', $.Options.showDesktopNotifDMsTimer.val,
|
||||
function () {$.MAL.showDMchat();}, false
|
||||
);
|
||||
}
|
||||
}
|
||||
var newDMs = getNewGroupDMsCount();
|
||||
if (newDMs) {
|
||||
$.MAL.soundNotifyDM();
|
||||
|
||||
if ($.Options.showDesktopNotifDMs.val === 'enable') {
|
||||
$.MAL.showDesktopNotif(false,
|
||||
polyglot.t('You got') + ' ' + polyglot.t('new_group_messages', newDMs) + '.',
|
||||
false, 'twister_notification_new_DMs', $.Options.showDesktopNotifDMsTimer.val,
|
||||
function () {$.MAL.showDMchat({group: true});}, false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -197,6 +214,7 @@ function requestDMsCount() {
|
||||
if (_newDMsUpdated) {
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
$.MAL.updateNewGroupDMsUI(getNewGroupDMsCount());
|
||||
}
|
||||
}, null,
|
||||
function(req, ret) {console.warn('ajax error:' + ret);}, null
|
||||
@ -207,7 +225,18 @@ function getNewDMsCount() {
|
||||
var newDMs = 0;
|
||||
|
||||
for (var user in _newDMsPerUser) {
|
||||
if (_newDMsPerUser[user])
|
||||
if (user[0] !== '*' && _newDMsPerUser[user])
|
||||
newDMs += _newDMsPerUser[user];
|
||||
}
|
||||
|
||||
return newDMs;
|
||||
}
|
||||
|
||||
function getNewGroupDMsCount() {
|
||||
var newDMs = 0;
|
||||
|
||||
for (var user in _newDMsPerUser) {
|
||||
if (user[0] === '*' && _newDMsPerUser[user])
|
||||
newDMs += _newDMsPerUser[user];
|
||||
}
|
||||
|
||||
@ -220,6 +249,7 @@ function resetNewDMsCountForUser(user, lastId) {
|
||||
|
||||
saveDMsToStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
$.MAL.updateNewGroupDMsUI(getNewGroupDMsCount());
|
||||
}
|
||||
|
||||
function updateGroupList() {
|
||||
@ -232,6 +262,7 @@ function updateGroupList() {
|
||||
function initDMsCount() {
|
||||
loadDMsFromStorage();
|
||||
$.MAL.updateNewDMsUI(getNewDMsCount());
|
||||
$.MAL.updateNewGroupDMsUI(getNewGroupDMsCount());
|
||||
//quick hack to obtain list of group chat aliases
|
||||
updateGroupList();
|
||||
setInterval(updateGroupList, 60000);
|
||||
|
7
licenses/groupmessages.png.license
Normal file
7
licenses/groupmessages.png.license
Normal file
@ -0,0 +1,7 @@
|
||||
*group messages icon* is derivative work
|
||||
|
||||
based on https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Group_half_security.svg/120px-Group_half_security.svg.png from https://commons.wikimedia.org/wiki/File:Group_half_security.svg
|
||||
|
||||
formerly was icon from PICOL, PIctorial COmmunication Language, http://picol.org
|
||||
|
||||
licensed under Creative Commons Attribution 3.0 Unported license
|
@ -62,36 +62,16 @@
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.profile-card-buttons
|
||||
{
|
||||
.profile-card-buttons {
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.twister-user-info .profile-card-buttons {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.profile-card-buttons .direct-messages-with-user,
|
||||
.profile-card-buttons .mentions-from-user,
|
||||
.profile-card-buttons .follow,
|
||||
.profile-card-buttons .unfollow
|
||||
{
|
||||
display: inline;
|
||||
padding: 4px 12px;
|
||||
font-size: 12px;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
color: rgba( 0, 0, 0, .7 );
|
||||
background: rgba( 0, 0, 0, .1 );
|
||||
border: none;
|
||||
transition: all .2s linear;
|
||||
}
|
||||
|
||||
.profile-card-buttons .direct-messages-with-user:hover,
|
||||
.profile-card-buttons .mentions-from-user:hover
|
||||
{
|
||||
color: #fff;
|
||||
background: #b2d67b;
|
||||
}
|
||||
|
||||
.profile-card.forEdition
|
||||
{
|
||||
margin: 0 auto;
|
||||
@ -385,10 +365,6 @@ h2.profile-screen-name {
|
||||
color: #8f95a4;
|
||||
}
|
||||
|
||||
.profile-modal .modal-buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.profile-modal h1.profile-name,
|
||||
.profile-modal h2.profile-screen-name,
|
||||
.profile-modal span.profile-location,
|
||||
@ -401,3 +377,36 @@ h2.profile-screen-name {
|
||||
.profile-modal a.profile-bio:empty {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form, .group-messages-control .secret-key {
|
||||
display: none;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form textarea {
|
||||
border: solid 1px rgba(0, 0, 0, .3);
|
||||
border-radius: 3px;
|
||||
vertical-align: middle;
|
||||
width: 73%;
|
||||
height: 20px;
|
||||
resize: none;
|
||||
margin: 0 4px;
|
||||
padding: 1px 4px;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form textarea:focus {
|
||||
border: solid 1px rgba(118, 145, 206, .8);
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form button {
|
||||
color: #DDD;
|
||||
background-color: #45474D;
|
||||
border: medium none;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form button:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
@ -107,28 +107,24 @@ h3
|
||||
************** BUTTONS ***************
|
||||
**************************************/
|
||||
|
||||
button
|
||||
{
|
||||
button {
|
||||
color: rgba(255, 255, 255, .8);
|
||||
background: #45474d;
|
||||
color: rgba( 255, 255, 255, .8 );
|
||||
border: none;
|
||||
padding: 5px 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:hover
|
||||
{
|
||||
button:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
button.disabled
|
||||
{
|
||||
button:disabled, button.disabled {
|
||||
opacity: .4;
|
||||
}
|
||||
|
||||
button.disabled:hover
|
||||
{
|
||||
color: rgba( 255, 255, 255, .8 );
|
||||
button:disabled:hover, button.disabled:hover {
|
||||
color: rgba(255, 255, 255, .8);
|
||||
}
|
||||
|
||||
button.follow, button.unfollow, .following-list button.private {
|
||||
@ -172,11 +168,32 @@ button.unfollow:hover {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.b-buttons {
|
||||
text-align: right;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.b-buttons button {
|
||||
color: rgba(0, 0, 0, .7);
|
||||
background-color: rgba(0, 0, 0, .08);
|
||||
border: none;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
width: auto;
|
||||
padding: 4px 12px;
|
||||
transition: all .1s linear;
|
||||
}
|
||||
|
||||
.b-buttons button:hover {
|
||||
color: #FFF;
|
||||
background: #B2D67B;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
**************************** MENU *****
|
||||
**************** MENU ****************
|
||||
**************************************/
|
||||
.userMenu
|
||||
{
|
||||
|
||||
.userMenu {
|
||||
width: 900px;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
@ -185,11 +202,13 @@ button.unfollow:hover {
|
||||
background: #43464d;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.userMenu.w1200 {
|
||||
width: 1200px;
|
||||
margin-left: -600px;
|
||||
}
|
||||
.userMenu:after{
|
||||
|
||||
.userMenu:after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 9999px;
|
||||
@ -197,7 +216,8 @@ button.unfollow:hover {
|
||||
background: #43464d;
|
||||
z-index: -999;
|
||||
}
|
||||
.userMenu:before{
|
||||
|
||||
.userMenu:before {
|
||||
position: absolute;
|
||||
content: '';
|
||||
width: 9999px;
|
||||
@ -206,16 +226,14 @@ button.unfollow:hover {
|
||||
background: #43464d;
|
||||
z-index: -999;
|
||||
}
|
||||
.userMenu > ul
|
||||
{
|
||||
}
|
||||
.userMenu > ul > li
|
||||
{
|
||||
|
||||
.userMenu > ul > li {
|
||||
float: left;
|
||||
height: 40px;
|
||||
margin: 0;
|
||||
}
|
||||
.userMenu > ul > li > a
|
||||
{
|
||||
|
||||
.userMenu > ul > li > a {
|
||||
line-height: 40px;
|
||||
height: 40px;
|
||||
padding: 0 20px 0 45px;
|
||||
@ -227,119 +245,87 @@ button.unfollow:hover {
|
||||
transition: all .2s linear;
|
||||
position: relative;
|
||||
}
|
||||
.userMenu li > a:hover
|
||||
{
|
||||
|
||||
.userMenu li:hover, .userMenu li:active {
|
||||
background-color: rgba(0, 0, 0 , .4);
|
||||
}
|
||||
|
||||
.userMenu li:hover > a, .userMenu li:active > a {
|
||||
text-decoration: none;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.current > a
|
||||
{
|
||||
|
||||
.userMenu li.current {
|
||||
background-color: #768FCE;
|
||||
}
|
||||
|
||||
.userMenu li.current > a {
|
||||
color: #fff;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.userMenu-home > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-home > a {
|
||||
background: url(../img/home.png) no-repeat center center;
|
||||
padding-left: 40px;
|
||||
}
|
||||
.userMenu li.userMenu-home:hover > a
|
||||
{
|
||||
background: url(../img/home.png) no-repeat center center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-home.current > a
|
||||
{
|
||||
background: url(../img/home.png) no-repeat center center #768fce;
|
||||
}
|
||||
.userMenu li.userMenu-connections > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-connections > a {
|
||||
background: url(../img/connections.png) no-repeat center center;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.userMenu-connections:hover > a
|
||||
{
|
||||
background: url(../img/connections.png) no-repeat center center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-connections.current > a
|
||||
{
|
||||
background: url(../img/connections.png) no-repeat 5px center #b43e34;
|
||||
}
|
||||
.userMenu li.userMenu-network > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-network > a {
|
||||
background: url(../img/network.png) no-repeat 5px center;
|
||||
padding-left: 60px;
|
||||
}
|
||||
.userMenu li.userMenu-network:hover > a
|
||||
{
|
||||
background: url(../img/network.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-network.current > a
|
||||
{
|
||||
background: url(../img/network.png) no-repeat 5px center #768fce;
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-following > a
|
||||
{
|
||||
.userMenu li.userMenu-following > a {
|
||||
background: url(../img/following.png) no-repeat 5px center;
|
||||
padding-left: 50px;
|
||||
}
|
||||
.userMenu li.userMenu-following:hover > a
|
||||
{
|
||||
background: url(../img/following.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-following.current > a
|
||||
{
|
||||
background: url(../img/following.png) no-repeat 5px center #768fce;
|
||||
}
|
||||
.userMenu li.userMenu-options > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-options > a {
|
||||
background: url(../img/switch.png) no-repeat 5px center;
|
||||
padding-left: 50px;
|
||||
}
|
||||
.userMenu li.userMenu-options:hover > a
|
||||
{
|
||||
background: url(../img/switch.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-options.current > a
|
||||
{
|
||||
background: url(../img/switch.png) no-repeat 5px center #768fce;
|
||||
}
|
||||
.userMenu li.userMenu-messages > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-messages > a {
|
||||
background: url(../img/messages.png) no-repeat center center;
|
||||
padding: 0 25px 0 35px;
|
||||
opacity: 1;
|
||||
}
|
||||
.userMenu li.userMenu-messages:hover > a
|
||||
{
|
||||
background: url(../img/messages.png) no-repeat center center rgba( 0, 0, 0 , .4 );
|
||||
|
||||
.userMenu li.userMenu-messages > a:empty {
|
||||
padding: 0 20px 0 30px;
|
||||
opacity: .7;
|
||||
}
|
||||
.userMenu li.userMenu-messages.current > a
|
||||
{
|
||||
background: url(../img/messages.png) no-repeat center center #b43e34;
|
||||
|
||||
.userMenu li.userMenu-groupmessages > a {
|
||||
background: url(../img/groupmessages.png) no-repeat center center;
|
||||
background-size: 22px 22px;
|
||||
padding: 0 24px;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.userMenu li.userMenu-profile > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-profile > a {
|
||||
background: url(../img/profile.png) no-repeat 5px center;
|
||||
padding-left: 35px;
|
||||
}
|
||||
.userMenu li.userMenu-profile:hover > a
|
||||
{
|
||||
background: url(../img/profile.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
.userMenu li.userMenu-profile.current > a
|
||||
{
|
||||
background: url(../img/profile.png) no-repeat 5px center #768fce;
|
||||
}
|
||||
.userMenu li.userMenu-config
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-config {
|
||||
float: right;
|
||||
position: relative;
|
||||
}
|
||||
.userMenu li.userMenu-search
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-search {
|
||||
float: right;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-search:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
input.userMenu-search-field::-webkit-input-placeholder {
|
||||
color: #4d4d4d;
|
||||
font-style: italic;
|
||||
@ -368,24 +354,20 @@ input.userMenu-search-field:focus::-moz-placeholder {
|
||||
input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
color: #fff;
|
||||
}
|
||||
.userMenu li.userMenu-config > a
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-config > a {
|
||||
background: url(../img/config.png) no-repeat 5px center;
|
||||
padding: 0 30px 0 45px;
|
||||
}
|
||||
.userMenu li.userMenu-config > a:after
|
||||
{
|
||||
|
||||
.userMenu li.userMenu-config > a:after {
|
||||
content: "▼";
|
||||
position: absolute;
|
||||
font-size: 10px;
|
||||
transition: all .2 linear;
|
||||
margin-left: 8px;
|
||||
}
|
||||
.userMenu li.userMenu-config:hover > a,
|
||||
.userMenu li.userMenu-config:active > a
|
||||
{
|
||||
background: url(../img/config.png) no-repeat 5px center rgba( 0, 0, 0 , .4 );
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-dhtindicator {
|
||||
background: #000;
|
||||
width: 70px;
|
||||
@ -402,6 +384,7 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
transition: all 200ms;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-dhtindicator a {
|
||||
display: inline-block;
|
||||
font: 12px/25px "Open Sans", sans-serif;
|
||||
@ -410,6 +393,7 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
height: 25px;
|
||||
opacity: .9;
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-dhtindicator a:before {
|
||||
content: 'DHT:';
|
||||
display: inline-block;
|
||||
@ -418,19 +402,15 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
width: 70px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.userMenu li.userMenu-dhtindicator:hover {
|
||||
opacity: 1;
|
||||
-webkit-box-shadow: inset 0 0 15px #000;
|
||||
-moz-box-shadow: inset 0 0 15px #000;
|
||||
box-shadow: inset 0 0 15px #000;
|
||||
}
|
||||
.userMenu li.userMenu-messages > a:empty
|
||||
{
|
||||
padding: 0 20px 0 30px;
|
||||
opacity: .7;
|
||||
}
|
||||
.wrapper
|
||||
{
|
||||
|
||||
.wrapper {
|
||||
width: 900px;
|
||||
margin: 0 auto;
|
||||
background: #e0e6f5;
|
||||
@ -439,15 +419,18 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
z-index: 1;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
.wrapper.w1200 {
|
||||
width: 1200px;
|
||||
padding: 55px 7px 15px 7px;
|
||||
}
|
||||
|
||||
.dashboard.left {
|
||||
width: 320px;
|
||||
position: fixed;
|
||||
top: 55px;
|
||||
}
|
||||
|
||||
.dashboard.right {
|
||||
width: 320px;
|
||||
position: fixed;
|
||||
@ -455,18 +438,18 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
margin-left: 864px;
|
||||
}
|
||||
|
||||
.module
|
||||
{
|
||||
.module {
|
||||
border: solid 1px rgba( 69, 71, 77, .1 );
|
||||
background: #f3f5fb;
|
||||
|
||||
}
|
||||
|
||||
.dashboard .module {
|
||||
margin: 0 0 3%;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.messages-qtd
|
||||
{
|
||||
|
||||
.messages-qtd {
|
||||
position: absolute;
|
||||
background: #ef0807;
|
||||
color: #fff;
|
||||
@ -475,10 +458,11 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
|
||||
font-size: 8px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
.userMenu-connections .messages-qtd
|
||||
{
|
||||
|
||||
.userMenu-connections .messages-qtd {
|
||||
margin: 4px 0 0 -5px;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
****************** CONFIG SUBMENU & SEARCH RESULTS *****
|
||||
*******************************************************/
|
||||
@ -1156,6 +1140,11 @@ textarea.splited-post {
|
||||
transition: background .1s linear;
|
||||
-moz-transition: background .1s linear;
|
||||
}
|
||||
|
||||
.post.new {
|
||||
background-color: #FFFFED;
|
||||
}
|
||||
|
||||
.post.open
|
||||
{
|
||||
margin: 10px 0;
|
||||
@ -1197,10 +1186,8 @@ textarea.splited-post {
|
||||
{
|
||||
background: #fff;
|
||||
}
|
||||
.post-photo,
|
||||
.mini-profile-photo
|
||||
{
|
||||
margin: 5px;
|
||||
|
||||
.post-photo, .mini-profile-photo {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
vertical-align: middle;
|
||||
@ -1209,13 +1196,14 @@ textarea.splited-post {
|
||||
overflow: hidden;
|
||||
border-radius: 20%;
|
||||
/*transform: rotate( 45deg );*/
|
||||
margin: 6px;
|
||||
}
|
||||
.post-photo img,
|
||||
.mini-profile-photo img
|
||||
{
|
||||
|
||||
.post-photo img, .mini-profile-photo img {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.post-info span
|
||||
{
|
||||
vertical-align: top;
|
||||
@ -1238,14 +1226,15 @@ textarea.splited-post {
|
||||
display: inline-block;
|
||||
letter-spacing: 0px;
|
||||
}
|
||||
.post-info-time
|
||||
{
|
||||
|
||||
.post-info-time {
|
||||
float: right;
|
||||
font-size: 12px;
|
||||
margin-right: 5px;
|
||||
margin: 4px 8px 0;
|
||||
opacity: .5;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.post-info-time:hover {
|
||||
text-decoration: none;
|
||||
color: #43464d;
|
||||
@ -1253,7 +1242,7 @@ textarea.splited-post {
|
||||
|
||||
.post-text {
|
||||
font-size: 13px;
|
||||
margin: 2px 10px 4px 60px;
|
||||
margin: 2px 16px 4px 60px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
@ -1263,11 +1252,11 @@ textarea.splited-post {
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.post-context
|
||||
{
|
||||
.post-context {
|
||||
font-size: 11px;
|
||||
margin: 2px 10px 4px 60px;
|
||||
margin: 2px 16px 4px 60px;
|
||||
}
|
||||
|
||||
.post-text a,
|
||||
.post-context a,
|
||||
.mini-screen-name
|
||||
@ -1908,7 +1897,7 @@ textarea.splited-post {
|
||||
}
|
||||
|
||||
.direct-messages-thread .post-text {
|
||||
margin: 2px 10px 4px 4px;
|
||||
margin: 2px 16px 4px 4px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
@ -1931,8 +1920,26 @@ textarea.splited-post {
|
||||
left: auto;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-name {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-time {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-time .post-info-sent {
|
||||
float: right;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-text {
|
||||
margin: 2px 10px 4px 4px;
|
||||
margin: 2px 4px 4px 16px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-photo {
|
||||
@ -1957,6 +1964,100 @@ textarea.splited-post {
|
||||
content: '\2714';
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** GM NEW GROUP SETUP MODAL ******
|
||||
**************************************/
|
||||
|
||||
.group-messages-new-group.modal-wrapper {
|
||||
height: auto; /*about 320px*/
|
||||
margin-top: -160px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content .module {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div {
|
||||
width: 100%;
|
||||
margin: 4px 0;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div:last-child button {
|
||||
margin: 8px 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content textarea {
|
||||
border: solid 1px rgba(0, 0, 0, .3);
|
||||
border-radius: 3px;
|
||||
width: 500px;
|
||||
height: 56px;
|
||||
resize: none;
|
||||
margin: 12px 16px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content textarea:focus {
|
||||
border: solid 1px rgba(118, 145, 206, .8);
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** GM JOIN GROUP SETUP MODAL *****
|
||||
**************************************/
|
||||
|
||||
.group-messages-join-group.modal-wrapper {
|
||||
height: auto; /*about 360px*/
|
||||
margin-top: -240px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content .module {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div {
|
||||
width: 100%;
|
||||
margin: 4px 0;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div:last-child button {
|
||||
margin: 8px 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input {
|
||||
border: solid 1px rgba(0, 0, 0, .3);
|
||||
border-radius: 3px;
|
||||
width: 500px;
|
||||
margin: 12px 16px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input:focus {
|
||||
border: solid 1px rgba(118, 145, 206, .8);
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input[type='checkbox'] {
|
||||
display: inline;
|
||||
width: auto;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content .groups-list {
|
||||
height: 120px;
|
||||
overflow-y: auto;
|
||||
margin: 8px 8px 0;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*********** NEW USER MODAL ***********
|
||||
**************************************/
|
||||
@ -2082,6 +2183,7 @@ textarea.splited-post {
|
||||
|
||||
.prompt-wrapper {
|
||||
background: rgba(255,255,255, 1.0);
|
||||
font-size: 13px;
|
||||
z-index: 5;
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
@ -2102,6 +2204,20 @@ textarea.splited-post {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
*********** CONFIRM POPUP ************
|
||||
**************************************/
|
||||
|
||||
.confirm-popup .message {
|
||||
text-align: center;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
.confirm-popup .modal-buttons {
|
||||
text-align: center;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** FOLLOWING-CONFIG PROMPT *******
|
||||
**************************************/
|
||||
@ -2523,6 +2639,7 @@ p.post-text img {
|
||||
.post-rt-reference .post-photo {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.post-rt-reference .post-photo img {
|
||||
@ -2532,11 +2649,12 @@ p.post-text img {
|
||||
|
||||
.post-rt-reference .post-info-name {
|
||||
font-size: 11px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.post-rt-reference .post-text {
|
||||
font-size: 11px;
|
||||
margin: 2px 10px 4px 10px;
|
||||
margin: 2px 8px 4px 34px;
|
||||
}
|
||||
|
||||
.post-rt-reference .post-text a {
|
||||
@ -2546,4 +2664,5 @@ p.post-text img {
|
||||
.post-rt-reference .post-info-time {
|
||||
font-size: 9px;
|
||||
color: #000;
|
||||
margin: 2px 4px 0;
|
||||
}
|
||||
|
BIN
theme_calm/img/groupmessages.png
Normal file
BIN
theme_calm/img/groupmessages.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
@ -56,7 +56,7 @@
|
||||
font-style: normal;
|
||||
}
|
||||
/* line 64, ../sass/_fonts.sass */
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before, .extend-icon:before, .userMenu li.userMenu-config > a:before, .post-retransmited-icon:before, .post-reply:before, .post-propagate:before, .post-favorite:before, .post .show-more:before, .mini-profile-actions span:before, ul.userMenu-search-profiles button:before, .mini-profile-indicators .userMenu-connections a:before, .mini-profile-indicators .userMenu-messages a:before, .mini-profile-indicators .userMenu-user a:before, .twister-user-remove:before, .refresh-toptrends:before, .twistday-reminder .refresh:before, .refresh-users:before, .modal-close:before, .mark-all-as-read:before, .modal-back:before, .icon-down-after:after {
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before, .extend-icon:before, .userMenu li.userMenu-config > a:before, .post-retransmited-icon:before, .post-reply:before, .post-propagate:before, .post-favorite:before, .post .show-more:before, .mini-profile-actions span:before, ul.userMenu-search-profiles button:before, .mini-profile-indicators .userMenu-connections a:before, .mini-profile-indicators .userMenu-messages a:before, .twister-user-remove:before, .refresh-toptrends:before, .twistday-reminder .refresh:before, .refresh-users:before, .modal-close:before, .mark-all-as-read:before, .modal-back:before, .icon-down-after:after {
|
||||
font-family: "fontello";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
@ -95,12 +95,6 @@
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* '' */
|
||||
/* line 100, ../sass/_fonts.sass */
|
||||
.icon-user:before, .mini-profile-indicators .userMenu-user a:before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* '' */
|
||||
/* line 105, ../sass/_fonts.sass */
|
||||
.icon-camera:before {
|
||||
@ -365,7 +359,8 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
|
||||
display: block;
|
||||
}
|
||||
/* line 65, ../sass/_menu.sass */
|
||||
.userMenu li.userMenu-dhtindicator, .userMenu li.userMenu-connections, .userMenu li.userMenu-messages {
|
||||
.userMenu li.userMenu-dhtindicator, .userMenu li.userMenu-connections,
|
||||
.userMenu li.userMenu-messages, .userMenu li.userMenu-groupmessages {
|
||||
display: none !important;
|
||||
}
|
||||
/* line 68, ../sass/_menu.sass */
|
||||
@ -438,7 +433,7 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
|
||||
padding: 0;
|
||||
}
|
||||
/* line 54, ../sass/_profile.sass */
|
||||
.profile-modal .modal-content .postboard {
|
||||
.profile-modal .modal-content .postboard, .profile-modal .modal-content .members {
|
||||
margin-left: 0;
|
||||
height: 100%;
|
||||
bottom: 0;
|
||||
@ -771,6 +766,10 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
|
||||
color: #414244;
|
||||
}
|
||||
|
||||
.post.new .post-info-time {
|
||||
color: #B4C669;
|
||||
}
|
||||
|
||||
/* line 55, ../sass/_postboard.sass */
|
||||
.post-data {
|
||||
padding: 10px;
|
||||
@ -888,9 +887,10 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
|
||||
.post-context {
|
||||
font-size: 11px;
|
||||
line-height: 11px;
|
||||
margin: 2px 10px 4px 60px;
|
||||
color: #b3b5b7;
|
||||
margin: 2px 8px 4px 62px;
|
||||
}
|
||||
|
||||
/* line 146, ../sass/_postboard.sass */
|
||||
.post-retransmited-icon:before {
|
||||
display: block;
|
||||
@ -1699,12 +1699,12 @@ button:hover, .mini-profile-actions span:hover, a.button:hover {
|
||||
text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
/* line 85, ../sass/_commons.sass */
|
||||
button.disabled, .mini-profile-actions span.disabled, a.button.disabled {
|
||||
button:disabled, button.disabled, .mini-profile-actions span.disabled, a.button.disabled {
|
||||
opacity: 0.5;
|
||||
background-color: #999;
|
||||
}
|
||||
/* line 88, ../sass/_commons.sass */
|
||||
button.disabled:hover, .mini-profile-actions span.disabled:hover, a.button.disabled:hover {
|
||||
button:disabled:hover, button.disabled:hover, .mini-profile-actions span.disabled:hover, a.button.disabled:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
@ -1977,6 +1977,7 @@ ul.userMenu-search-profiles button:after, ul.userMenu-search-profiles .mini-prof
|
||||
position: relative;
|
||||
text-align: center;
|
||||
background: white;
|
||||
padding: 1em;
|
||||
}
|
||||
/* line 152, ../sass/style.sass */
|
||||
.mini-profile a.button {
|
||||
@ -2003,8 +2004,8 @@ ul.userMenu-search-profiles button:after, ul.userMenu-search-profiles .mini-prof
|
||||
|
||||
/* line 169, ../sass/style.sass */
|
||||
.mini-profile-indicators {
|
||||
margin: 0 0 1em 0;
|
||||
background-color: #f3f2f1;
|
||||
text-align: center;
|
||||
}
|
||||
/* line 173, ../sass/style.sass */
|
||||
.mini-profile-indicators li {
|
||||
@ -2012,7 +2013,6 @@ ul.userMenu-search-profiles button:after, ul.userMenu-search-profiles .mini-prof
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
width: 100px;
|
||||
float: left;
|
||||
font-size: 0.8em;
|
||||
position: relative;
|
||||
@ -2046,6 +2046,21 @@ ul.userMenu-search-profiles button:after, ul.userMenu-search-profiles .mini-prof
|
||||
padding-top: 0.2em;
|
||||
}
|
||||
|
||||
.mini-profile-indicators .userMenu-connections, .mini-profile-indicators .userMenu-messages {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.mini-profile-indicators .userMenu-groupmessages {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.mini-profile-indicators .userMenu-groupmessages a:before {
|
||||
content: "";
|
||||
background: transparent url("../img/groupmessages.png") no-repeat scroll center center;
|
||||
background-size: 24px 24px;
|
||||
height: 1em;
|
||||
}
|
||||
|
||||
/* line 208, ../sass/style.sass */
|
||||
.messages-qtd {
|
||||
position: absolute;
|
||||
@ -2853,17 +2868,19 @@ ol.toptrends-list a:hover {
|
||||
margin-left: 58px;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
/* line 758, ../sass/style.sass */
|
||||
.directMessages .post-info-name {
|
||||
float: none;
|
||||
}
|
||||
|
||||
/* line 760, ../sass/style.sass */
|
||||
.directMessages .post-info-tag {
|
||||
line-height: 1em;
|
||||
padding: 0;
|
||||
display: inline;
|
||||
font-size: 80%;
|
||||
margin: 0 0 0 1em;
|
||||
margin-left: 0.1em;
|
||||
}
|
||||
|
||||
/* line 767, ../sass/style.sass */
|
||||
@ -2896,6 +2913,13 @@ ol.toptrends-list a:hover {
|
||||
margin: 0px 10px 20px 10px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post .post-info-name {
|
||||
display: block;
|
||||
margin-left: 128px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* line 793, ../sass/style.sass */
|
||||
.direct-messages-thread .post .post-info-time {
|
||||
float: none;
|
||||
@ -2947,6 +2971,15 @@ ol.toptrends-list a:hover {
|
||||
left: 0;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.direct-messages-thread .post.sent .post-info-name {
|
||||
margin-right: 128px;
|
||||
}
|
||||
|
||||
/* line 842, ../sass/style.sass */
|
||||
.direct-messages-thread .post.sent .post-text:after {
|
||||
border-top: solid 7px transparent;
|
||||
@ -2967,6 +3000,144 @@ ol.toptrends-list a:hover {
|
||||
left: auto;
|
||||
}
|
||||
|
||||
|
||||
.group-messages-control .invite-form, .group-messages-control .secret-key {
|
||||
display: none;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form textarea {
|
||||
font-size: 1.1em;
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
vertical-align: middle;
|
||||
width: 73%;
|
||||
height: 20px;
|
||||
resize: none;
|
||||
margin: 0 4px;
|
||||
padding: 1px 4px;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form textarea:focus {
|
||||
border-bottom: solid 1px #B4C669;
|
||||
}
|
||||
|
||||
.group-messages-control .invite-form button {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.group-messages-control.b-buttons {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.profile-card-buttons.group-messages-control.b-buttons {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.profile-card-buttons.group-messages-control.b-buttons button {
|
||||
margin: 2px 0;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** GM NEW GROUP SETUP MODAL ******
|
||||
**************************************/
|
||||
|
||||
.group-messages-new-group.modal-wrapper {
|
||||
width: 580px;
|
||||
height: auto; /*about 320px*/
|
||||
margin: -180px 0 0 -290px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content .module {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div {
|
||||
margin: 4px 0;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content div div:last-child button {
|
||||
margin: 8px 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content textarea {
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
width: 500px;
|
||||
height: 56px;
|
||||
resize: none;
|
||||
margin: 12px 16px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.group-messages-new-group .modal-content textarea:focus {
|
||||
border-bottom: solid 1px #B4C669;
|
||||
}
|
||||
|
||||
/*************************************
|
||||
****** GM JOIN GROUP SETUP MODAL *****
|
||||
**************************************/
|
||||
|
||||
.group-messages-join-group.modal-wrapper {
|
||||
width: 580px;
|
||||
height: auto; /*about 360px*/
|
||||
margin: -250px 0 0 -290px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content .module {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div {
|
||||
margin: 4px 0;
|
||||
padding: 4px 12px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content div div:last-child button {
|
||||
margin: 8px 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input {
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
width: 500px;
|
||||
margin: 12px 16px;
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input:focus {
|
||||
border-bottom: solid 1px #B4C669;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content input[type='checkbox'] {
|
||||
display: inline;
|
||||
width: auto;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.group-messages-join-group .modal-content .groups-list {
|
||||
background-color: #FFF;
|
||||
height: 120px;
|
||||
overflow-y: auto;
|
||||
margin: 8px 8px 0;
|
||||
}
|
||||
|
||||
/********* NEW USER MODAL************* */
|
||||
|
||||
.new-user.modal-wrapper {
|
||||
@ -3352,4 +3523,5 @@ ul.dropdown-menu .active, ul.dropdown-menu .active a {
|
||||
.post-rt-reference .post-info-time {
|
||||
font-size: 9px;
|
||||
color: #B3B5B7;
|
||||
margin: 0 2px 0;
|
||||
}
|
||||
|
BIN
theme_nin/img/groupmessages.png
Normal file
BIN
theme_nin/img/groupmessages.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
@ -5,7 +5,6 @@ $(function(){
|
||||
$('.twister-user-remove').html('');
|
||||
$('.profile-card-main').attr('style', '');
|
||||
$('img[src$="img/tornado_avatar.png"]').attr("src","theme_nin/img/tornado_avatar.png");
|
||||
$('.userMenu-search-profiles button').html('').attr('title',polyglot.t('Follow'));
|
||||
$('.mini-profile-actions span').html('');
|
||||
|
||||
$.globalEval(postToElem.toString().replace(/postContext.append\(_templatePostRtBy/,
|
||||
@ -37,13 +36,17 @@ $(function(){
|
||||
this.slideUp(150);
|
||||
}).bind($('.left .post-area-new')));
|
||||
|
||||
$(".userMenu-search-profiles .follow")
|
||||
.on("eventToggleFollow", function() {
|
||||
|
||||
$('#search-profile-template .follow')
|
||||
.html('')
|
||||
.attr('title', polyglot.t('Follow'))
|
||||
.on('eventToggleFollow', function() {
|
||||
$(this).text('').attr('title', polyglot.t('Follow'));
|
||||
})
|
||||
.on("eventToggleUnfollow", function() {
|
||||
.on('eventToggleUnfollow', function() {
|
||||
$(this).text('').attr('title', polyglot.t('Unfollow'));
|
||||
});
|
||||
})
|
||||
;
|
||||
|
||||
if (/\/options.html$/i.test(document.location))
|
||||
$(document).ready(localizeLabels);
|
||||
|
@ -78,6 +78,10 @@
|
||||
.post:hover
|
||||
cursor: pointer
|
||||
|
||||
.post.new
|
||||
.post-info-time
|
||||
color: $color-green
|
||||
|
||||
|
||||
.open
|
||||
background: none
|
||||
|
22
tmobile.html
22
tmobile.html
@ -658,16 +658,7 @@
|
||||
</div>
|
||||
<div> </div>
|
||||
<div>
|
||||
<ul class="userMenu-search-profiles" data-role="listview">
|
||||
<li id="search-profile-template" style="display: none;">
|
||||
<a class="mini-profile-info open-profile-modal" data-screen-name="">
|
||||
<img class="mini-profile-photo avatar" src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/>
|
||||
<span class="mini-screen-name">@<b></b></span>
|
||||
<span class="mini-profile-name"></span>
|
||||
<!-- <button class="follow">Follow</button> -->
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="userMenu-search-profiles" data-role="listview"></ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -741,6 +732,17 @@
|
||||
<div id="anywhere"></div>
|
||||
|
||||
<div id="templates" style="display:none;">
|
||||
<div id="search-profile-template">
|
||||
<li>
|
||||
<a class="mini-profile-info open-profile-modal" data-screen-name="">
|
||||
<img class="mini-profile-photo avatar" src="img/grayed_avatar_placeholder_24.png" alt="user-photo" />
|
||||
<span class="mini-screen-name">@<b></b></span>
|
||||
<span class="mini-profile-name"></span>
|
||||
<!-- <button class="follow">Follow</button> -->
|
||||
</a>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<li id="post-template-home" class="post-li module post" data-time="">
|
||||
<img class="avatar" src="img/grayed_avatar_placeholder_24.png" alt="user-photo"/>
|
||||
<div class="post-data" data-userpost="" data-content_to_rt="" data-content_to_sigrt=""
|
||||
|
Loading…
x
Reference in New Issue
Block a user