Browse Source

Merge branch 'blaster'

master
Miguel Freitas 9 years ago
parent
commit
b6bedbbe48
  1. 121
      README.md
  2. 6
      abort.html
  3. 40
      css/style.css
  4. 15
      following.html
  5. 15
      home.html
  6. 18
      index.html
  7. 87
      js/interface_common.js
  8. 7
      js/interface_home.js
  9. 80
      js/interface_localization.js
  10. 2
      js/twister_actions.js
  11. 4
      js/twister_directmsg.js
  12. 13
      js/twister_formatpost.js
  13. 10
      js/twister_io.js
  14. 10
      js/twister_timeline.js
  15. 73
      js/twister_user.js
  16. 18
      login.html
  17. 2
      network.html
  18. 2
      options.html
  19. 38
      profile-edit.html
  20. 56
      theme_calm/css/style.css
  21. 42
      theme_nin/css/style.css
  22. 2
      theme_nin/js/theme_option.js
  23. 17
      theme_nin/sass/_commons.sass
  24. 14
      theme_nin/sass/_postboard.sass
  25. 5
      theme_nin/sass/style.sass
  26. 26
      tmobile.html

121
README.md

@ -1,77 +1,106 @@ @@ -1,77 +1,106 @@
twister-html
============
HTML interface for [Twister](http://twister.net.co) [(github)](https://github.com/miguelfreitas/twister-core).
To use it, clone this repo under ~/.twister/html like this:
HTML interface for **[twister](http://twister.net.co)** (see git repo [here](https://github.com/miguelfreitas/twister-core)). It is a FOSS which is being under heavy construction.
To use it, clone this repo under `~/.twister/html` like this:
git clone https://github.com/miguelfreitas/twister-html.git ~/.twister/html
If you'r on **OS X** - clone to `${HOME}/Library/Application\ Support/Twister/html` instead of `~/.twister/html`.
If you're on **Mac OS X** — clone to `${HOME}/Library/Application\ Support/Twister/html` instead of `~/.twister/html`
Be on the bleeding edge
-----------------------
All nightly improvements and following fixes of these improvements are tested in [blaster](https://github.com/miguelfreitas/twister-html/tree/blaster) branch.
To be sure you are at the forefront, in stage of lack of testing and consensus:
git pull && git checkout blaster
If you want to switch back to stable branch:
git checkout master
Follow `@letstwist` in twister to be aware of recent changes. In case of getting of twister-html related buzz from it:
git pull
Contribute
----------
Feel free to fork and send pull requests!
To make it easier for us to accept your patches, please follow the conventional GitHub workflow:
# after forking, clone your repo
rm -rf ~/.twister/html
git clone git@github.com:yournickname/twister-html.git ~/.twister/html
cd ~/.twister/html
# CREATE A NEW BRANCH, specific to the fix you're implementing
git checkout -b my-fix
# ... make your changes ...
# commit and push
git commit -m "Fixing #1234 - bad foobarizer" && git push
# Now open a pull request from branch my-fix to miguelfreitas:master on github.
# Once the request is accepted, switch back to master and track upstream
git remote add upstream https://github.com/miguelfreitas/twister-html.git # one-off setup
git fetch upstream
git checkout master
git merge upstream/master # you should get a fast-forward message here
git push
To make it easier for us to accept your patches, please follow the conventional GitHub workflow
and keep in mind that your pull requests should have **blaster** branch as both the origin and target.
1. After forking, clone your repo:
rm -rf ~/.twister/html # in case you already have it cloned from not your repo
git clone git@github.com:YOURNICKNAME/twister-html.git ~/.twister/html
cd ~/.twister/html
2. Switch to 'blaster' branch:
git checkout blaster
3. CREATE A NEW BRANCH, specific to the fix you're implementing:
git checkout -b my-awesome-fix
4. Make your changes.
5. Commit and push:
git commit -m "fix of #12345: bad foobarizer" && git push
6. Now open a pull request from branch 'YOURNICKNAME:my-awesome-fix' to 'miguelfreitas:blaster' on GitHub.
7. Once the request is accepted, switch back to 'blaster' and track changes in upstream repo:
git remote add upstream https://github.com/miguelfreitas/twister-html.git # this is one-off setup
git fetch upstream && git checkout blaster
git merge upstream/blaster # you should get a fast-forward message here
git push
Translations
------------
If you want to add your own translation, edit `interface_localization.js` like this:
1. fork the repo and create a new branch
git clone git@github.com:yournickname/twister-html.git ~/.twister/html
cd ~/.twister/html
git checkout -b Klingon
1. Fork the repo and create a new branch from 'blaster' one:
2. add your language to the list of available choices. You should use your ISO code here,
it should match what the browser reports. The Klingon ISO is "tlh", so:
git clone git@github.com:YOURNICKNAME/twister-html.git ~/.twister/html
cd ~/.twister/html && git checkout blaster
git checkout -b Klingon-translation
2. Add your language to the list of available choices. You should use your ISO code here,
it should match what the browser reports. The Klingon ISO is 'tlh', so:
var knownLanguages = ["en","nl","it","fr","ru","tlh"];`
For multi-region languages, if you want to catch them all, use only the first half
(e.g. to match it and it-ch, specify "it").
var knownLanguages = ['en', 'nl', 'it', 'fr', ... , 'ru', 'tlh'];
3. add a new wordset block after existing ones
For multi-region languages, if you want to catch them all, use only the first half
(e.g. to match it and it-ch, specify 'it').
3. Add a new wordset block after existing ones:
if(preferredLanguage == "tlh"){
polyglot.locale("tlh");
if (preferredLanguage === 'tlh') {
polyglot.locale('tlh');
wordset = {
"Insults": "mu'qaD,
....
'Insults': 'mu\'qaD',
...
}
}
4. stage all changes in file `interface_localization.js`
4. Stage all changes in file `interface_localization.js`:
git add interface_localization.js
5. commit & push
5. Commit & push:
git commit -m 'Klingon translation'
git push origin Klingon-translation
6. Then open the pull request from branch 'YOURNICKNAME:Klingon-translation' to 'miguelfreitas:blaster' on GitHub.
git commit -m "Klingon translation"
git push
3. When opening the pull request on github. For any help, ping @toyg.
For any help ping `@tasty` in twister.

6
abort.html

@ -19,12 +19,12 @@ @@ -19,12 +19,12 @@
<script src="js/twister_network.js"></script>
<script src="js/interface_common.js"></script>
<script>changeStyle();</script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<!-- MENU SUPERIOR INIT -->
<!-- MENU SUPERIOR INIT -->
<nav class="userMenu">
</nav>
<!-- MENU SUPERIOR END -->

40
css/style.css

@ -80,6 +80,13 @@ h3 @@ -80,6 +80,13 @@ h3
font-size: 14px;
color: rgba( 0, 0, 0, .5 );
}
samp {
background-color: #F0EFCC;
padding-left: 2px;
padding-right: 2px;
}
.clearfix:before,
.clearfix:after
{
@ -779,6 +786,11 @@ textarea.splited-post { @@ -779,6 +786,11 @@ textarea.splited-post {
{
vertical-align: top;
}
.twister-user .bio a {
color: #e34f42;
}
.followers
{
font-size: 12px;
@ -1068,12 +1080,6 @@ ol.toptrends-list { @@ -1068,12 +1080,6 @@ ol.toptrends-list {
word-wrap: break-word;
}
.post-text samp {
background-color: #F0EFCC;
padding-left: 2px;
padding-right: 2px;
}
.post-context {
font-size: 11px;
margin: 2px 16px 4px 60px;
@ -1091,7 +1097,16 @@ ol.toptrends-list { @@ -1091,7 +1097,16 @@ ol.toptrends-list {
top: 40px;
}
.post-retransmited-icon {
.post-rt-by div {
display: inline;
}
.post-rt-by .prep:before,
.post-rt-by .prep:after {
content: ' ';
}
.post-rt-icon {
display: inline-block;
width: 16px;
height: 16px;
@ -1528,6 +1543,13 @@ ol.toptrends-list { @@ -1528,6 +1543,13 @@ ol.toptrends-list {
color: rgba( 0, 0, 0, .4 );
}
.direct-messages-list .post .messages-qtd {
display: none;
top: 8px;
left: 16px;
line-height: 8px;
}
.direct-messages-thread {
padding: 10px;
}
@ -1842,6 +1864,10 @@ ol.toptrends-list { @@ -1842,6 +1864,10 @@ ol.toptrends-list {
*********** CONFIRM POPUP ************
**************************************/
.confirm-popup.prompt-wrapper {
margin-top: -80px;
}
.confirm-popup .message {
text-align: center;
margin: 12px;

15
following.html

@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
<script src="js/interface_common.js"></script>
<script src="js/jquery.textcomplete.min.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<!-- MENU SUPERIOR INIT -->
@ -276,10 +276,14 @@ @@ -276,10 +276,14 @@
</div>
</div>
<div id="post-retransmited-by-template">
<i class="post-retransmited-icon"></i>
<span>twisted again by</span><span> </span>
<a class="post-retransmited-by open-profile-modal" href=""></a>
<div id="post-rt-by-template">
<i class="post-rt-icon"></i>
<div class="post-rt-sign">
<span class="prep">twisted again by</span><a class="open-profile-modal"></a>
</div>
<div class="post-rt-time">
<span class="prep">at</span><span class="time"></span>
</div>
</div>
<!-- template for user links in message (open profile modal) -->
@ -373,6 +377,7 @@ @@ -373,6 +377,7 @@
</div>
<!-- o texto do post (restrição de caracteres?) -->
<p class="post-text"></p>
<div class="messages-qtd">0</div>
</li>
<div class="messages-thread-template">

15
home.html

@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
<script src="js/interface_home.js"></script>
<script src="js/jquery.textcomplete.min.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<!-- MENU SUPERIOR INIT -->
@ -367,10 +367,14 @@ @@ -367,10 +367,14 @@
</div>
</div>
<div id="post-retransmited-by-template">
<i class="post-retransmited-icon"></i>
<span>twisted again by</span><span> </span>
<a class="post-retransmited-by open-profile-modal" href=""></a>
<div id="post-rt-by-template">
<i class="post-rt-icon"></i>
<div class="post-rt-sign">
<span class="prep">twisted again by</span><a class="open-profile-modal"></a>
</div>
<div class="post-rt-time">
<span class="prep">at</span><span class="time"></span>
</div>
</div>
<!-- template for user links in message (open profile modal) -->
@ -465,6 +469,7 @@ @@ -465,6 +469,7 @@
</div>
<!-- o texto do post (restrição de caracteres?) -->
<p class="post-text"></p>
<div class="messages-qtd">0</div>
</li>
<div class="messages-thread-template">

18
index.html

@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<html>
<head>
<meta charset="utf-8" />
<title>twister</title>
<meta name="viewport" content="width=device-width, user-scalable=no"/>
<link rel="stylesheet" href="css/jquery.mobile-1.3.2.min.css" />
@ -13,9 +13,9 @@ @@ -13,9 +13,9 @@
<script src="js/jquery.mobile.router.min.js"></script>
<script src="js/jquery.mobile-1.3.2.min.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<div id="index" data-role="page">
<div data-role="header" data-position="fixed" data-nobackbtn="true">
@ -29,5 +29,5 @@ @@ -29,5 +29,5 @@
</div>
</body>
</html>
</body>
</html>

87
js/interface_common.js

@ -66,7 +66,8 @@ function closeModalHandler(classBase) { @@ -66,7 +66,8 @@ function closeModalHandler(classBase) {
}
function confirmPopup(event, req) {
event.stopPropagation();
if (event && event.stopPropagation)
event.stopPropagation();
var modal = openModal({
classBase: '.prompt-wrapper',
@ -79,38 +80,66 @@ function confirmPopup(event, req) { @@ -79,38 +80,66 @@ function confirmPopup(event, req) {
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);
if (req.removeConfirm)
btn.remove();
else {
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);
if (req.removeCancel)
btn.remove();
else {
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);
}
var btn = modal.self.find('.prompt-close');
if (req.removeClose)
btn.remove();
else {
if (req.closeFunc) {
if (typeof req.closeFunc === 'string') {
if (req.closeFunc === 'confirmFunc') {
req.closeFunc = req.confirmFunc;
req.closeFuncArgs = req.confirmFuncArgs;
} else if (req.closeFunc === 'cancelFunc') {
req.closeFunc = req.cancelFunc;
req.closeFuncArgs = req.cancelFuncArgs;
}
}
btn.on('click', function () {
closePrompt();
req.closeFunc(req.closeFuncArgs);
});
}
}
}
function checkNetworkStatusAndAskRedirect(cbFunc, cbArg) {
networkUpdate(function(args) {
if (!twisterdConnectedAndUptodate) {
var redirect = window.confirm(polyglot.t('switch_to_network'));
if (redirect)
$.MAL.goNetwork();
confirmPopup(null, {
messageTxt: polyglot.t('switch_to_network'),
confirmFunc: $.MAL.goNetwork
});
} else {
if (args.cbFunc)
args.cbFunc(args.cbArg);
@ -172,7 +201,7 @@ function openGroupProfileModalWithNameHandler(groupAlias) { @@ -172,7 +201,7 @@ function openGroupProfileModalWithNameHandler(groupAlias) {
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'));
getBioToElem(ret.members[i], item.find('.bio'));
}
elemFitNextIntoParentHeight(req.modal.content.find('.profile-card'));
@ -314,7 +343,7 @@ function fillWhoToFollowModal(list, hlist, start) { @@ -314,7 +343,7 @@ function fillWhoToFollowModal(list, hlist, start) {
getAvatar(utf, item.find('.twister-user-photo'));
getFullname(utf, item.find('.twister-user-full'));
getBio(utf, item.find('.bio'));
getBioToElem(utf, item.find('.bio'));
getFullname(followingUsers[i], item.find('.followed-by').text(followingUsers[i]));
item.find('.twister-user-remove').remove();

7
js/interface_home.js

@ -106,9 +106,10 @@ var InterfaceFunctions = function() { @@ -106,9 +106,10 @@ var InterfaceFunctions = function() {
$('.mini-profile .following-count').text(followingUsers.length - 1);
$('.wrapper .postboard .post').each( function() {
var elem = $(this);
if ((elem.find('[data-screen-name="' + user + '"]').length && !elem.find(".post-retransmited-by").text())
|| elem.find(".post-retransmited-by").text() === '@'+user)
elem.remove();
if ((elem.find('[data-screen-name="' + user + '"]').length
&& !elem.find(".post-rt-by .open-profile-modal").text())
|| elem.find(".post-rt-by .open-profile-modal").text() === '@' + user)
elem.remove();
});
});

80
js/interface_localization.js

@ -43,6 +43,7 @@ if(preferredLanguage == "en"){ @@ -43,6 +43,7 @@ if(preferredLanguage == "en"){
"Block generation": "Block generation ",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Cancel",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -203,6 +204,8 @@ if(preferredLanguage == "en"){ @@ -203,6 +204,8 @@ if(preferredLanguage == "en"){
"Terminate Daemon:": "Terminate Daemon:",
"Exit": "Exit",
"Save Changes": "Save Changes",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Secret key:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
@ -308,7 +311,8 @@ if(preferredLanguage == "en"){ @@ -308,7 +311,8 @@ if(preferredLanguage == "en"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -360,6 +364,7 @@ if(preferredLanguage == "es"){ @@ -360,6 +364,7 @@ if(preferredLanguage == "es"){
"Block generation": "Generación de bloques ",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Cancelar",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -520,6 +525,8 @@ if(preferredLanguage == "es"){ @@ -520,6 +525,8 @@ if(preferredLanguage == "es"){
"Terminate Daemon:": "Terminar Demonio:",
"Exit": "Salir",
"Save Changes": "Guardar cambios",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Clave secreta:",
"You have to log in to post messages.": "Debes estar logueado para escribir mensajes.",
"You have to log in to post replies.": "Debes estar logueado para escribir respuestas.",
@ -625,7 +632,8 @@ if(preferredLanguage == "es"){ @@ -625,7 +632,8 @@ if(preferredLanguage == "es"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "deshacer",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -661,6 +669,7 @@ if(preferredLanguage == "uk"){ @@ -661,6 +669,7 @@ if(preferredLanguage == "uk"){
"Block generation": "Генерація блоку ",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Відміна",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -818,6 +827,8 @@ if(preferredLanguage == "uk"){ @@ -818,6 +827,8 @@ if(preferredLanguage == "uk"){
"Terminate Daemon:": "Зупинити Twister:",
"Exit": "Вихід",
"Save Changes": "Зберегти зміни",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Секретний ключ:",
"You have to log in to post messages.": "Ви повинні увійти для публікації повідомлень.",
"You have to log in to post replies.": "Ви повинні увійти для публікації відповідей.",
@ -923,7 +934,8 @@ if(preferredLanguage == "uk"){ @@ -923,7 +934,8 @@ if(preferredLanguage == "uk"){
"Who's celebrating Twistday": "Річницю святкує",
"Today's luckies:": "Сьогоднішні щасливчики:",
"Upcoming ones:": "Найближчим часом:",
"twisted again by": "ретвіст від",
"post_rt_sign_prep": "ретвіст від",
"post_rt_time_prep": "at",
"undo": "відмінити",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Ви впевнені, що бажаєте завершити роботу? \n\nКлієнт Twister буде зупинено допоки ви не запустите його знову.",
"Daemon exited...": "Twister заверив роботу...",
@ -961,6 +973,7 @@ if(preferredLanguage == "zh-CN"){ @@ -961,6 +973,7 @@ if(preferredLanguage == "zh-CN"){
"Block generation": "区块生成器",
"busted_oh": "噢,阻挡!",
"busted_avowal": "系统检测到此用户试图在这里注入恶意代码",
"btn_ok": "Okay",
"Cancel": "取消",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -1120,6 +1133,8 @@ if(preferredLanguage == "zh-CN"){ @@ -1120,6 +1133,8 @@ if(preferredLanguage == "zh-CN"){
"Terminate Daemon:": "终止后台进程:",
"Exit": "退出",
"Save Changes": "保存更改",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "私钥:",
"You have to log in to post messages.": "你必须登录才能发送信息。",
"You have to log in to post replies.": "你必须登录才能发送回复。",
@ -1225,7 +1240,8 @@ if(preferredLanguage == "zh-CN"){ @@ -1225,7 +1240,8 @@ if(preferredLanguage == "zh-CN"){
"Who's celebrating Twistday": "谁在庆祝自己的Twistday周年纪念日",
"Today's luckies:": "今天的幸运用户:",
"Upcoming ones:": "即将到来的幸运用户:",
"twisted again by": "转推由",
"post_rt_sign_prep": "转推由",
"post_rt_time_prep": "at",
"undo": "撤销",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "你确定要退出后台进程?\nTwister 客户端将停止工作。",
"Daemon exited...": "后台进程已退出...",
@ -1278,6 +1294,7 @@ if(preferredLanguage == "nl"){ @@ -1278,6 +1294,7 @@ if(preferredLanguage == "nl"){
"Block generation": "Block productie",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Annuleren",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -1438,6 +1455,8 @@ if(preferredLanguage == "nl"){ @@ -1438,6 +1455,8 @@ if(preferredLanguage == "nl"){
"Terminate Daemon:": "Daemon beëindigen",
"Exit": "Beëindigen",
"Save Changes": "Opslaan",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Geheime sleutel:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
@ -1543,7 +1562,8 @@ if(preferredLanguage == "nl"){ @@ -1543,7 +1562,8 @@ if(preferredLanguage == "nl"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -1579,6 +1599,7 @@ if(preferredLanguage == "it"){ @@ -1579,6 +1599,7 @@ if(preferredLanguage == "it"){
"Block generation": "Generatore di blocchi:",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Cancella",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -1736,6 +1757,8 @@ if(preferredLanguage == "it"){ @@ -1736,6 +1757,8 @@ if(preferredLanguage == "it"){
"Terminate Daemon:": "Terminate Daemon:",
"Exit": "Exit",
"Save Changes": "Save Changes",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Secret key:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
@ -1841,7 +1864,8 @@ if(preferredLanguage == "it"){ @@ -1841,7 +1864,8 @@ if(preferredLanguage == "it"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -1877,6 +1901,7 @@ if(preferredLanguage == "fr"){ @@ -1877,6 +1901,7 @@ if(preferredLanguage == "fr"){
"Block generation": "Production de blocs",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Annuler",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -2037,6 +2062,8 @@ if(preferredLanguage == "fr"){ @@ -2037,6 +2062,8 @@ if(preferredLanguage == "fr"){
"Terminate Daemon:": "Tuer le démon:",
"Exit": "Quitter",
"Save Changes": "Sauvegarder les changements",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Clef secrète:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
@ -2142,7 +2169,8 @@ if(preferredLanguage == "fr"){ @@ -2142,7 +2169,8 @@ if(preferredLanguage == "fr"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -2180,6 +2208,7 @@ if(preferredLanguage == "ru"){ @@ -2180,6 +2208,7 @@ if(preferredLanguage == "ru"){
"Block generation": "Майнинг блоков ",
"busted_oh": "о нет!",
"busted_avowal": "я пойман на попытке вставить этот подозрительный код здесь",
"btn_ok": "Лады́",
"Cancel": "Отмена",
"Confirm": "Несомненно",
"сonfirm_group_leaving_header": "Подтверждение ухода из группы",
@ -2340,6 +2369,8 @@ if(preferredLanguage == "ru"){ @@ -2340,6 +2369,8 @@ if(preferredLanguage == "ru"){
"Terminate Daemon:": "Остановить twister:",
"Exit": "Выход",
"Save Changes": "Сохранить изменения",
"profile_saved": "Данные профайла сохранены в DHT.",
"profile_not_saved": "Данные профайла не сохранены.",
"Secret key:": "Секретный ключ:",
"You have to log in to post messages.": "Войдите, чтобы отправлять сообщения.",
"You have to log in to post replies.": "Войдите, чтобы отвечать на сообщения.",
@ -2445,7 +2476,8 @@ if(preferredLanguage == "ru"){ @@ -2445,7 +2476,8 @@ if(preferredLanguage == "ru"){
"Who's celebrating Twistday": "Кто празднует Твистодень",
"Today's luckies:": "Сегодняшные счастливчики", // няшные, ок?
"Upcoming ones:": "Намечающиеся вскоре",
"twisted again by": "Перепостил",
"post_rt_sign_prep": "ретвистит",
"post_rt_time_prep": "в",
"undo": "отменить",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Вы уверены, что хотите "+
"выключить демон?\nTwister клиент перестанет работать.",
@ -2486,6 +2518,7 @@ if(preferredLanguage == "de"){ @@ -2486,6 +2518,7 @@ if(preferredLanguage == "de"){
"Block generation": "Block-Generierung ",
"busted_oh": "Oh nein!",
"busted_avowal": "Ich bin ertappt, habe versucht, hier Schadcode einzugeben!",
"btn_ok": "Okay",
"Cancel": "Abbrechen",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -2637,7 +2670,7 @@ if(preferredLanguage == "de"){ @@ -2637,7 +2670,7 @@ if(preferredLanguage == "de"){
"Create this nickname": "Nichnamen erstellen",
"Type nickname here": "Nicknamen hier eingeben",
"Import secret key": "Privaten Schlüssel hier importieren",
"52-characters secret": "52 Zeichen Geheimniss",
"52-characters secret": "52 Zeichen Geheimnis",
"With nickname": "Mit Nicknamen",
"Import key": "Schlüssel importieren",
"Client Version:": "Client Version:",
@ -2647,6 +2680,8 @@ if(preferredLanguage == "de"){ @@ -2647,6 +2680,8 @@ if(preferredLanguage == "de"){
"Terminate Daemon:": "Daemon beenden:",
"Exit": "Beenden",
"Save Changes": "Änderungen speichern",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Privater Schlüssel:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
@ -2753,7 +2788,8 @@ if(preferredLanguage == "de"){ @@ -2753,7 +2788,8 @@ if(preferredLanguage == "de"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Die Glücklichen von heute:",
"Upcoming ones:": "Demnächst:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -2789,6 +2825,7 @@ if(preferredLanguage == "ja"){ @@ -2789,6 +2825,7 @@ if(preferredLanguage == "ja"){
"Block generation": "ブロック生成",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "キャンセル",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -2946,6 +2983,8 @@ if(preferredLanguage == "ja"){ @@ -2946,6 +2983,8 @@ if(preferredLanguage == "ja"){
"Terminate Daemon:": "デーモンを終了する:",
"Exit": "終了",
"Save Changes": "変更を保存",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "シークレットキー:",
"You have to log in to post messages.": "You have to log in to post messages.",
"You have to log in to post replies.": "You have to log in to post replies.",
@ -3051,7 +3090,8 @@ if(preferredLanguage == "ja"){ @@ -3051,7 +3090,8 @@ if(preferredLanguage == "ja"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -3088,6 +3128,7 @@ if(preferredLanguage == "pt-BR"){ @@ -3088,6 +3128,7 @@ if(preferredLanguage == "pt-BR"){
"Block generation": "Geração de blocos ",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Cancelar",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -3249,6 +3290,8 @@ if(preferredLanguage == "pt-BR"){ @@ -3249,6 +3290,8 @@ if(preferredLanguage == "pt-BR"){
"Terminate Daemon:": "Encerrar a execução do Cliente do Twister",
"Exit": "Sair",
"Save Changes": "Salvar Alterações",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret Key": "Chave Secreta", // não existia
"Secret key:": "Chave secreta:",
"You have to log in to post messages.": "You have to log in to post messages.",
@ -3355,7 +3398,8 @@ if(preferredLanguage == "pt-BR"){ @@ -3355,7 +3398,8 @@ if(preferredLanguage == "pt-BR"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "twisted again by",
"post_rt_sign_prep": "twisted again by",
"post_rt_time_prep": "at",
"undo": "undo",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Are you sure you want to exit the daemon?\nThe Twister client will stop working.",
"Daemon exited...": "Daemon exited...",
@ -3391,6 +3435,7 @@ if(preferredLanguage == "tr"){ @@ -3391,6 +3435,7 @@ if(preferredLanguage == "tr"){
"Block generation": "Blok üretimi ",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "İptal",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -3550,6 +3595,8 @@ if(preferredLanguage == "tr"){ @@ -3550,6 +3595,8 @@ if(preferredLanguage == "tr"){
"Terminate Daemon:": "Servisi Durdur:",
"Exit": "Çıkış",
"Save Changes": "Değişiklikleri Kaydet",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Gizli anahtar:",
"Options": "Ayarlar",
"Switch to Promoted posts": "Destekli Mesajlara Geç",
@ -3655,7 +3702,8 @@ if(preferredLanguage == "tr"){ @@ -3655,7 +3702,8 @@ if(preferredLanguage == "tr"){
"Who's celebrating Twistday": "Twistgünü'nü kutlayanlar",
"Today's luckies:": "Günün talihlileri:",
"Upcoming ones:": "Yakında:",
"twisted again by": "yeniden ileten",
"post_rt_sign_prep": "yeniden ileten",
"post_rt_time_prep": "at",
"undo": "geri al",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Hizmeti sonlandırmak istiyor musun?\nTwister istemcisi çalışmayacak.",
"Daemon exited...": "Hizmet sonlandırıldı...",
@ -3691,6 +3739,7 @@ if(preferredLanguage == "cs"){ @@ -3691,6 +3739,7 @@ if(preferredLanguage == "cs"){
"Block generation": "Generování bloků ",
"busted_oh": "oh noes!",
"busted_avowal": "I\'m busted trying inject this suspicious stuff here",
"btn_ok": "Okay",
"Cancel": "Zrušit",
"Confirm": "Confirm",
"сonfirm_group_leaving_header": "Confirm group leaving",
@ -3849,6 +3898,8 @@ if(preferredLanguage == "cs"){ @@ -3849,6 +3898,8 @@ if(preferredLanguage == "cs"){
"Terminate Daemon:": "Ukončit server:",
"Exit": "Konec",
"Save Changes": "Uložit změny",
"profile_saved": "Profile data has been saved to DHT.",
"profile_not_saved": "Profile data has been not saved.",
"Secret key:": "Tajný klíč:",
"You have to log in to post messages.": "Pro vkládání příspěvků je třeba se přihlásit.",
"You have to log in to post replies.": "Pro vkládání odpovědí je třeba se přihlásit.",
@ -3954,7 +4005,8 @@ if(preferredLanguage == "cs"){ @@ -3954,7 +4005,8 @@ if(preferredLanguage == "cs"){
"Who's celebrating Twistday": "Who's celebrating Twistday",
"Today's luckies:": "Today's luckies:",
"Upcoming ones:": "Upcoming ones:",
"twisted again by": "přeposlal(a)",
"post_rt_sign_prep": "přeposlal(a)",
"post_rt_time_prep": "at",
"undo": "zpět",
"Are you sure you want to exit the daemon?\nThe Twister client will stop working.": "Skutečně chcete ukončit server?\nTwister tím vypnete.",
"Daemon exited...": "Server ukončen...",

2
js/twister_actions.js

@ -329,7 +329,7 @@ function updateProfileData(profileModalContent, username) { @@ -329,7 +329,7 @@ function updateProfileData(profileModalContent, username) {
getFullname( username, profileModalContent.find(".profile-name") );
getLocation( username, profileModalContent.find(".profile-location") );
getWebpage( username, profileModalContent.find(".profile-url") );
getBio( username, profileModalContent.find(".profile-bio") );
getBioToElem(username, profileModalContent.find('.profile-bio'));
getTox( username, profileModalContent.find(".profile-tox") );
getBitmessage( username, profileModalContent.find(".profile-bitmessage") );
getAvatar( username, profileModalContent.find(".profile-card-photo") );

4
js/twister_directmsg.js

@ -28,6 +28,10 @@ function processDMsnippet(dmUsers, dmThreadList, forGroup) { @@ -28,6 +28,10 @@ function processDMsnippet(dmUsers, dmThreadList, forGroup) {
// convert snipped to html and add it to date-sorted list
var dmItem = dmDataToSnippetItem(dmUsers[u][0], u);
if (_newDMsPerUser[u] > 0) {
dmItem.addClass('new')
.find('.messages-qtd').text(_newDMsPerUser[u]).show();
}
var timeDmItem = parseInt(dmItem.attr('data-time'));
var existingItems = dmThreadList.children();
for (var j = 0; j < existingItems.length; j++) {

13
js/twister_formatpost.js

@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
//
// Format JSON posts and DMs to HTML.
var _templatePostRtReference
var _templatePostRtBy
var _templatePostRtReference;
var _templatePostRtBy;
var _htmlFormatMsgLinkTemplateExternal;
var _htmlFormatMsgLinkTemplateUser;
var _htmlFormatMsgLinkTemplateHashtag;
@ -14,7 +14,7 @@ $(document).ready(function() { @@ -14,7 +14,7 @@ $(document).ready(function() {
_templatePostRtReference = $('#post-rt-reference-template').children().clone(true);
_templatePostRtReference.find('.post-text')
.on('click', {feeder: '.post-rt-reference'}, openConversationClick);
_templatePostRtBy = $('#post-retransmited-by-template').children().clone(true);
_templatePostRtBy = $('#post-rt-by-template').children().clone(true);
_htmlFormatMsgLinkTemplateExternal = $('#external-page-link-template')
if (_htmlFormatMsgLinkTemplateExternal.length) {
_htmlFormatMsgLinkTemplateExternal = _htmlFormatMsgLinkTemplateExternal[0].cloneNode();
@ -156,10 +156,13 @@ function postToElem(post, kind, promoted) { @@ -156,10 +156,13 @@ function postToElem(post, kind, promoted) {
if (userpost.msg) {
setPostReference(postContext, rt, userpost.sig_rt);
} else {
postContext.append(_templatePostRtBy.clone(true))
.find('.post-retransmited-by')
postContext.append(_templatePostRtBy.clone(true)).addClass('post-rt-by')
.find('.post-rt-sign .prep').text(polyglot.t('post_rt_sign_prep'))
.siblings('.open-profile-modal')
.attr('href', $.MAL.userUrl(retweeted_by)).text('@' + retweeted_by)
;
postContext.find('.post-rt-time .prep').text(polyglot.t('post_rt_time_prep'))
.siblings('.time').text(timeGmtToText(post.userpost.time));
// let's check original post and grab some possible RT
dhtget(username, 'post' + k, 's',
function(args, post) {

10
js/twister_io.js

@ -249,9 +249,13 @@ function getFullname( username, item ){ @@ -249,9 +249,13 @@ function getFullname( username, item ){
}
}
// get bio and store it in item.text
function getBio( username, item ){
getProfileResource( username, "bio", item);
// get bio, format it as post message and store result to elem
function getBioToElem(peerAlias, elem) {
getProfileResource(peerAlias, 'bio', undefined,
function (req, ret) {
req.elem.html(htmlFormatMsg(ret).html);
}, {elem: elem}
);
}
// get tox address and store it in item.text

10
js/twister_timeline.js

@ -192,9 +192,6 @@ function updateTimeline(req, posts) { @@ -192,9 +192,6 @@ function updateTimeline(req, posts) {
function attachPostsToStream(stream, posts, isPromoted) {
//console.log('attachPostsToStream:');
//console.log(posts);
function byTimeInDescendingOrder(a, b) {
return (a.time > b.time) ? -1 : 1;
}
var streamItems = stream.children();
var streamPosts = [];
@ -203,7 +200,6 @@ function attachPostsToStream(stream, posts, isPromoted) { @@ -203,7 +200,6 @@ function attachPostsToStream(stream, posts, isPromoted) {
var streamItem = streamItems.eq(i);
streamPosts.push({item: streamItem, time: parseInt(streamItem.attr('data-time'))});
}
//streamPosts.sort(byTimeInDescendingOrder); // currently here is no reason to sort it, it should be ok
for (var i = 0; i < posts.length; i++) {
//console.log(posts[i]);
@ -222,8 +218,7 @@ function attachPostsToStream(stream, posts, isPromoted) { @@ -222,8 +218,7 @@ function attachPostsToStream(stream, posts, isPromoted) {
} else if (intrantPost.time > streamPosts[j].time) {
// this post in stream is older, so post must be inserted above
intrantPost.item.insertBefore(streamPosts[j].item).show();
streamPosts.push(intrantPost);
streamPosts.sort(byTimeInDescendingOrder);
streamPosts.splice(j, 0, intrantPost);
isAttached = true;
break;
}
@ -231,8 +226,7 @@ function attachPostsToStream(stream, posts, isPromoted) { @@ -231,8 +226,7 @@ function attachPostsToStream(stream, posts, isPromoted) {
}
if (!isAttached) {
intrantPost.item.appendTo(stream).show();
streamPosts.push(intrantPost);
streamPosts.sort(byTimeInDescendingOrder);
streamPosts.unshift(intrantPost);
}
}
}

73
js/twister_user.js

@ -261,24 +261,59 @@ function loadProfileForEdit() { @@ -261,24 +261,59 @@ function loadProfileForEdit() {
}, {} );
}
function saveProfile(e)
{
var profile = {};
profile["fullname"] = $(".input-name").val();
profile["bio"] = $(".input-description").val();
profile["location"] = $(".input-city").val();
profile["url"] = $(".input-website").val();
var tox = $(".input-tox").val();
if( tox.length )
profile["tox"] = tox;
var bitmessage = $(".input-bitmessage").val();
if( bitmessage.length )
profile["bitmessage"] = bitmessage;
dhtput( defaultScreenName, "profile", "s",
profile, defaultScreenName, ++profileSeqNum );
var avatarData = $(".profile-card-photo.forEdition").attr("src");
dhtput( defaultScreenName, "avatar", "s",
avatarData, defaultScreenName, ++avatarSeqNum );
clearAvatarAndProfileCache(defaultScreenName);
function saveProfile(e) {
function saveAvatar(req, isProfileDataSaved) {
dhtput(defaultScreenName, 'avatar', 's',
req.avatarImgSrc,
defaultScreenName, ++avatarSeqNum,
completeProfileSaving, {isProfileDataSaved: isProfileDataSaved}
);
}
function completeProfileSaving(req, isAvatarDataSaved) {
if (req.isProfileDataSaved && isAvatarDataSaved) {
clearAvatarAndProfileCache(defaultScreenName);
var titleTxt = '';
var messageTxt = polyglot.t('profile_saved');
} else {
var titleTxt = polyglot.t('error', {error: ''});
var messageTxt = polyglot.t('profile_not_saved');
}
confirmPopup(null, {
titleTxt: titleTxt,
messageTxt: messageTxt,
confirmTxt: polyglot.t('btn_ok'),
confirmFunc: $.MAL.enableButton,
confirmFuncArgs: $('.submit-changes'),
closeFunc: 'confirmFunc',
removeCancel: true
});
}
$.MAL.disableButton($('.submit-changes'));
dhtput(defaultScreenName, 'profile', 's',
setObjPropFromElemVal({}, {
fullname: '.input-name',
bio: '.input-description',
location: '.input-city',
url: '.input-website',
tox: '.input-tox',
bitmessage: '.input-bitmessage'
}),
defaultScreenName, ++profileSeqNum,
saveAvatar, {avatarImgSrc: $('.profile-card-photo.forEdition').attr('src')}
);
}
function setObjPropFromElemVal(object, req) {
var props = Object.getOwnPropertyNames(req); // req's props names will be object's props names
for (var i = 0; i < props.length; i++) {
elem = $(req[props[i]]); // req's props values are elements selectors
if (elem.length && elem.val())
object[props[i]] = elem.val();
}
return object;
}

18
login.html

@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
<script src="js/polyglot.min.js"></script>
<script src="js/interface_localization.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<!-- MENU SUPERIOR INIT -->
@ -90,6 +90,22 @@ @@ -90,6 +90,22 @@
</div>
<!-- TEMPLATE DO MODAL GENÉRICO END -->
<div class="prompt-wrapper">
<div class="modal-header">
<h3></h3>
<span class="modal-close prompt-close">&times;</span>
</div>
<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>
<!-- MODAL DE NEW USER INIT -->
<div id="new-user-modal-template">
<div class="warning">

2
network.html

@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
<script src="js/twister_network.js"></script>
<script src="js/interface_common.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>

2
options.html

@ -21,6 +21,8 @@ @@ -21,6 +21,8 @@
<script src="js/interface_login.js"></script>
<script src="js/polyglot.min.js"></script>
<script src="js/interface_localization.js"></script>
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>

38
profile-edit.html

@ -23,12 +23,12 @@ @@ -23,12 +23,12 @@
<script src="js/interface_common.js"></script>
<script src="js/interface_profile-edit.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
<!-- MENU SUPERIOR INIT -->
<!-- MENU SUPERIOR INIT -->
<nav class="userMenu">
<ul>
<li class="userMenu-home"><a href="home.html">
@ -36,8 +36,8 @@ @@ -36,8 +36,8 @@
<span class="selectable_theme theme_nin menu-news"></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-profile selectable_theme theme_original theme_nin current"><a class="label" href="profile-edit.html">Profile</a></li>
<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">
@ -54,16 +54,13 @@ @@ -54,16 +54,13 @@
</a>
</li>
<li class="userMenu-dhtindicator selectable_theme theme_calm"><a href="network.html"></a></li>
<li class="userMenu-search">
<input type="text" class="userMenu-search-field" placeholder="search">
</li>
</ul>
</nav>
<!-- MENU SUPERIOR END -->
<div class="wrapper">
<!-- ÁREA DE PROFILE PHOTO INIT -->
<!-- ÁREA DE PROFILE PHOTO INIT -->
<div class="profile-card forEdition">
<!-- Coloquei a imagem de fundo do card do usuário como background da div abaixo inline na tag para poder ser alterada dinamicamente -->
<div class="profile-card-main" style="background: url(img/img.png) no-repeat center center #b43e34;">
@ -85,12 +82,27 @@ @@ -85,12 +82,27 @@
<div style="font-size:80%;text-align: center;" class="secret-key-container">
<span class="label">Secret key:</span> <span class="secret-key"></span>
</div>
</div>
<!-- ÁREA DE POSTS END -->
</div>
<input type="file" id="avatar-file" name="avatar_files" style="display:none;"/>
<div id="templates" style="display:none;">
<div class="prompt-wrapper">
<div class="modal-header">
<h3></h3>
<span class="modal-close prompt-close">&times;</span>
</div>
<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>
</body>
</html>

56
theme_calm/css/style.css

@ -98,6 +98,13 @@ h3 @@ -98,6 +98,13 @@ h3
font-size: 14px;
color: rgba( 0, 0, 0, .5 );
}
samp {
background-color: #EEE;
padding-left: 2px;
padding-right: 2px;
}
.isFollowing:after {
color: #1a1;
content: '\2714';
@ -959,6 +966,23 @@ textarea.splited-post { @@ -959,6 +966,23 @@ textarea.splited-post {
{
vertical-align: top;
}
.twister-user .bio a {
font: italic 13px "Open Sans", sans-serif;
text-decoration: none;
color: #b46e67;
-webkit-transition: all 200ms;
-moz-transition: all 200ms;
-ms-transition: all 200ms;
-o-transition: all 200ms;
transition: all 200ms;
}
.twister-user .bio a:hover {
color: #e18881;
opacity: .8;
}
.followers
{
font-size: 12px;
@ -1276,12 +1300,6 @@ textarea.splited-post { @@ -1276,12 +1300,6 @@ textarea.splited-post {
word-wrap: break-word;
}
.post-text samp {
background: #EEE;
padding-left: 2px;
padding-right: 2px;
}
.post-context {
font-size: 11px;
margin: 2px 16px 4px 60px;
@ -1365,7 +1383,7 @@ textarea.splited-post { @@ -1365,7 +1383,7 @@ textarea.splited-post {
color: #768fce;
}
.post-info a[href^="#profile"], .followers a[href^="#profile"], a[href^="#profile"].post-retransmited-by{
.post-info a[href^="#profile"], .followers a[href^="#profile"], .post-rt-sign a {
color: #43464d;
-webkit-transition: all 200ms;
-moz-transition: all 200ms;
@ -1374,7 +1392,7 @@ textarea.splited-post { @@ -1374,7 +1392,7 @@ textarea.splited-post {
transition: all 200ms;
}
.post-info a[href^="#profile"]:hover, .followers a[href^="#profile"]:hover, a[href^="#profile"].post-retransmited-by:hover {
.post-info a[href^="#profile"]:hover, .followers a[href^="#profile"]:hover, .post-rt-sign a:hover {
color: #5e8da4;
text-decoration: none;
}
@ -1455,7 +1473,16 @@ textarea.splited-post { @@ -1455,7 +1473,16 @@ textarea.splited-post {
top: 40px;
}
.post-retransmited-icon {
.post-rt-by div {
display: inline;
}
.post-rt-by .prep:before,
.post-rt-by .prep:after {
content: ' ';
}
.post-rt-icon {
display: inline-block;
width: 25px;
height: 25px;
@ -1901,6 +1928,13 @@ textarea.splited-post { @@ -1901,6 +1928,13 @@ textarea.splited-post {
color: rgba( 0, 0, 0, .4 );
}
.direct-messages-list .post .messages-qtd {
display: none;
top: 8px;
left: 16px;
line-height: 8px;
}
.direct-messages-thread {
padding: 10px;
}
@ -2238,6 +2272,10 @@ textarea.splited-post { @@ -2238,6 +2272,10 @@ textarea.splited-post {
*********** CONFIRM POPUP ************
**************************************/
.confirm-popup.prompt-wrapper {
margin-top: -80px;
}
.confirm-popup .message {
text-align: center;
margin: 12px;

42
theme_nin/css/style.css

@ -56,7 +56,7 @@ @@ -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, .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-rt-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;
@ -198,7 +198,7 @@ @@ -198,7 +198,7 @@
/* '' */
/* line 188, ../sass/_fonts.sass */
.icon-twistagain:before, .post-retransmited-icon:before, .post-propagate:before {
.icon-twistagain:before, .post-rt-icon:before, .post-propagate:before {
content: "";
}
@ -273,6 +273,12 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, @@ -273,6 +273,12 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
display: block;
}
samp {
background-color: #EEE;
padding-left: 2px;
padding-right: 2px;
}
/* FONTS */
/* line 2, ../sass/_utils.sass */
.clear-fix:after, .userMenu ul:after, .profile-modal .profile-data:after, .profile-card .twister-user-info:after, .forEdition.profile-card:after, .postboard:after, .following:after, .expanded-content:after, .following-list li:after, .twistday-reminder li:after, .mini-following-info:after, .network.singleBlock:after, .options .tab-content:after, .promoted-posts-only:after, .dashboard.right:after, ul.userMenu-search-profiles li:after, .mini-profile .post-area:after, .mini-profile-indicators:after, .profile-data:after, #postboard-top:after, #postboard-top .post-area:after, .who-to-follow ol:after, .toptrends ol:after, .twistday-reminder ol:after, .twister-user:after, .modal-content:after, .modal-header:after, .direct-messages-thread .post:after {
@ -881,12 +887,6 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, @@ -881,12 +887,6 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
padding: 0;
}
.post-text samp {
background-color: #EEE;
padding-left: 2px;
padding-right: 2px;
}
/* line 138, ../sass/_postboard.sass */
.post-context {
font-size: 11px;
@ -895,8 +895,21 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, @@ -895,8 +895,21 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
margin: 2px 8px 4px 62px;
}
.post-rt-by {
margin: 0 0 1em;
}
.post-rt-by div {
display: inline;
}
.post-rt-by .prep:before,
.post-rt-by .prep:after {
content: ' ';
}
/* line 146, ../sass/_postboard.sass */
.post-retransmited-icon:before {
.post-rt-icon:before {
display: block;
float: left;
background: #B4C669;
@ -911,10 +924,6 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, @@ -911,10 +924,6 @@ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu,
margin-right: 0.4em;
}
.post-context.post-retransmited-by-container {
margin: 0 0 1em;
}
/* line 158, ../sass/_postboard.sass */
.mini-screen-name {
font-size: 13px;
@ -2905,6 +2914,13 @@ ol.toptrends-list a:hover { @@ -2905,6 +2914,13 @@ ol.toptrends-list a:hover {
display: none;
}
.direct-messages-list .post .messages-qtd {
display: none;
top: -2px;
right: -2px;
font-size: 0.7em;
}
/* line 782, ../sass/style.sass */
.direct-messages-list .post:hover:after {
display: block;

2
theme_nin/js/theme_option.js

@ -8,7 +8,7 @@ $(function(){ @@ -8,7 +8,7 @@ $(function(){
$('.mini-profile-actions span').html('');
$.globalEval(postToElem.toString().replace(/postContext.append\(_templatePostRtBy/,
'postContext.addClass(\'post-retransmited-by-container\').prependTo(postContext.parent()).append(_templatePostRtBy'));
'postContext.prependTo(postContext.parent()).append(_templatePostRtBy'));
$( '.userMenu-home.current a' ).on( 'click', function() {

17
theme_nin/sass/_commons.sass

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
*
outline: none!important
li
list-style: none
@ -15,7 +15,7 @@ html, body @@ -15,7 +15,7 @@ html, body
br
display: block
img
img
background: $main-background-color
+border-radius(2px)
@ -26,7 +26,7 @@ a @@ -26,7 +26,7 @@ a
color: $main-color-color
text-decoration: none
p
p
padding: 5px 0
@ -36,13 +36,16 @@ h2, h3 @@ -36,13 +36,16 @@ h2, h3
letter-spacing: 0.07em
font-weight: 500
line-height: 1.8em
samp
background-color: #EEE
padding-left: 2px
padding-right: 2px
textarea, input[type=text]
font: .95em/1.3em $main-font-family
font-weight: 400
/* isFollowing */
@ -57,7 +60,7 @@ textarea, input[type=text] @@ -57,7 +60,7 @@ textarea, input[type=text]
line-height: 10px
&:hover
text-decoration: none!important
h3 &
h3 &
display: none
/************** BUTTONS ************/
@ -68,7 +71,7 @@ button, a.button @@ -68,7 +71,7 @@ button, a.button
display: inline-block
line-height: 1em
font-weight: 500
margin: 0
margin: 0
float: none
text-shadow: 2px 2px 0 rgba(black,0)
+transition-property(background)

14
theme_nin/sass/_postboard.sass

@ -138,25 +138,25 @@ @@ -138,25 +138,25 @@
word-wrap: break-word
min-height: 25px
padding: 0
samp
background-color: #EEE
padding-left: 2px
padding-right: 2px
.post-context
font-size: 11px
line-height: 11px
margin: 2px 10px 4px 60px
color: lighten($dark-grey,30%)
&.post-retransmited-by-container
margin: 0 0 1em
.mini-screen-name
font-size: 13px
color: $dark-grey
.post-rt-by
margin: 0 0 1em
div
display: inline
.prep:before, .prep:after
content: ' '
.post-retransmited-icon
.post-rt-icon
@extend .icon-twistagain
@extend .extend-icon
display: block

5
theme_nin/sass/style.sass

@ -847,6 +847,11 @@ ol.toptrends-list @@ -847,6 +847,11 @@ ol.toptrends-list
margin: -6px 0 0 0
color: rgba(0, 0, 0, 0.4)
display: none
.messages-qtd
display: none
top: -2px
right: -2px
font-size: 0.7em
.direct-messages-list
.post:hover:after

26
tmobile.html

@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
<script src="js/tmobile.js?vr=10"></script>
<script src="js/jpeg_encoder_basic.js"></script>
<link rel="icon" type="image/png" href="img/twister_mini.png" />
<link rel="shortcut icon" type="image/png" href="img/twister_mini.png" />
</head>
<body>
@ -82,6 +82,19 @@ @@ -82,6 +82,19 @@
color: #555 !important;
}
.post-rt-by {
font-size: 60%;
}
.post-rt-by div {
display: inline;
}
.post-rt-by .prep:before,
.post-rt-by .prep:after {
content: ' ';
}
.post-rt-reference {
background-color: #FAFAFA;
border: 1px solid #ccc;
@ -808,10 +821,13 @@ @@ -808,10 +821,13 @@
</div>
</div>
<div id="post-retransmited-by-template">
<i class="post-retransmited-icon"></i>
<span style="font-size:60%;">twisted again by</span><span> </span>
<a style="font-size:60%;" class="post-retransmited-by open-profile-modal" href=""></a>
<div id="post-rt-by-template">
<div class="post-rt-sign">
<span class="prep">twisted again by</span><a class="open-profile-modal"></a>
</div>
<div class="post-rt-time">
<span class="prep">at</span><span class="time"></span>
</div>
</div>
<!-- template for user links in message (open profile modal) -->

Loading…
Cancel
Save