mirror of
https://github.com/smogon/pokemon-showdown-client.git
synced 2026-09-08 20:08:38 -05:00
News tracking
This commit is contained in:
@@ -91,9 +91,9 @@ ga('send', 'pageview');
|
||||
<div class="activitymenu">
|
||||
<div class="pmbox">
|
||||
<div class="pm-window news-embed" data-newsid="<!-- newsid -->">
|
||||
<h3><button class="closebutton" tabindex="-1"><i class="fa fa-times-circle"></i></button><button class="minimizebutton" tabindex="-1"><i class="fa fa-minus-circle"></i></button>Latest News</h3>
|
||||
<h3><button class="closebutton" tabindex="-1"><i class="fa fa-times-circle"></i></button><button class="minimizebutton" tabindex="-1"><i class="fa fa-minus-circle"></i></button>News</h3>
|
||||
<div class="pm-log" style="max-height:none">
|
||||
<div style="font-size:9pt;padding:1px 10px"><!-- news --></div>
|
||||
<!-- news -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -67,6 +67,25 @@
|
||||
this.updateFormats();
|
||||
|
||||
app.user.on('saveteams', this.updateTeams, this);
|
||||
|
||||
// news
|
||||
// (created during page load)
|
||||
|
||||
var self = this;
|
||||
Storage.whenPrefsLoaded(function () {
|
||||
var newsid = Number(Storage.prefs('newsid'));
|
||||
if (!newsid) return;
|
||||
var $news = this.$('.news-embed');
|
||||
var $newsEntries = $news.find('.newsentry');
|
||||
var hasUnread = false;
|
||||
for (var i = 0; i < $newsEntries.length; i++) {
|
||||
if (Number($newsEntries.eq(i).data('newsid')) > newsid) {
|
||||
hasUnread = true;
|
||||
$newsEntries.eq(i).addClass('unread');
|
||||
}
|
||||
}
|
||||
if (!hasUnread) self.minimizePM($news);
|
||||
});
|
||||
},
|
||||
|
||||
addPseudoPM: function (options) {
|
||||
@@ -234,6 +253,8 @@
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
$pmWindow = $(e.currentTarget).closest('.pm-window');
|
||||
} else {
|
||||
$pmWindow = e;
|
||||
}
|
||||
if (!$pmWindow) {
|
||||
return;
|
||||
@@ -376,6 +397,7 @@
|
||||
}
|
||||
app.dismissPopups();
|
||||
var $target = $(e.currentTarget);
|
||||
var newsid = $target.data('newsid');
|
||||
if ($target.data('minimized')) {
|
||||
this.minimizePM(e);
|
||||
} else if ($(e.target).closest('h3').length) {
|
||||
@@ -385,6 +407,11 @@
|
||||
e.stopPropagation();
|
||||
this.minimizePM(e);
|
||||
return;
|
||||
} else if (newsid) {
|
||||
if (Storage.prefs('newsid', newsid)) {
|
||||
$target.find('.unread').removeClass('unread');
|
||||
}
|
||||
return;
|
||||
}
|
||||
$target.find('textarea[name=message]').focus();
|
||||
}
|
||||
|
||||
@@ -45,10 +45,13 @@ Storage.prefs = function (prop, value, save) {
|
||||
// set preference
|
||||
if (value === null) {
|
||||
delete this.prefs.data[prop];
|
||||
} else if (this.prefs.data[prop] === value) {
|
||||
return false; // no need to save
|
||||
} else {
|
||||
this.prefs.data[prop] = value;
|
||||
}
|
||||
if (save !== false) this.prefs.save();
|
||||
return true;
|
||||
};
|
||||
|
||||
Storage.prefs.data = {};
|
||||
|
||||
@@ -769,6 +769,14 @@ p.or:after {
|
||||
.challenge p {
|
||||
margin: 4px 0;
|
||||
}
|
||||
.newsentry {
|
||||
font-size: 9pt;
|
||||
padding: 1px 10px;
|
||||
border-bottom: 1px solid #AAAAAA;
|
||||
}
|
||||
.unread {
|
||||
background: rgba(255,240,130,0.33);
|
||||
}
|
||||
|
||||
.tiny-layout .leftmenu,
|
||||
.tiny-layout .rightmenu,
|
||||
|
||||
Reference in New Issue
Block a user