Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @model IQueryable<MmoPortal.Models.TopicItem>
- @{
- Layout = "~/Views/Shared/Item/_PageLayout.cshtml";
- ViewBag.PageTitle = ViewBag.CategoryTitle;
- int ajaxLastUpdate = 0; // forum last post date
- int categoryId = ViewBag.CategoryId; // id to ajax request
- }
- @section PageContent {
- <div id="forum-item">
- <div id="topic-item">
- <div class="item-col col1 col-header">
- Название темы
- </div>
- <div class="item-col col2 col-header">
- Статистика
- </div>
- <div class="item-col col3 col-header">
- Последнее сообщение
- </div>
- </div>
- </div>
- <div class="clear">
- </div>
- <div class="forum-items-container">
- @foreach (MmoPortal.Models.TopicItem t in Model)
- {
- @Html.Raw( MmoPortal.Models.MyHelper.RenderTopic(t, Url.Action("Topic")) )
- if (ajaxLastUpdate == 0)
- {
- ajaxLastUpdate = t.LastPostDate;
- }
- }
- </div>
- <br />
- @if (Request.IsAuthenticated && !User.IsInRole("Banned"))
- {
- <div class="forum-new-item">@Html.ActionLink("Создать новую тему", "AddTopic", new { id = ViewBag.CategoryId })</div>
- }
- else if (User.IsInRole("Banned"))
- {
- <div>Администратор запретил вам создавать новые темы</div>
- }
- else
- {
- string returnUrl = Url.Action("Category", "Forum", new { id = ViewBag.CategoryId });
- <div class="forum-new-item"> Пожалуйста, <a href="@Url.Action("LogOn", "Account").ToString()?returnUrl=@returnUrl"> войдите</a>, чтобы создать тему</div>
- }
- <script type="text/javascript">
- var ajaxLastUpdate = @ajaxLastUpdate; // @ajaxLastUpdate
- var newColor = '#CCFFCC';
- $(document).ready(function () {
- // dynamic update
- DynamicUpdate();
- // on mouse move remove background on item (set item as read)
- $(".new").live('mousemove', function(event) {
- $(this).css("background", "#F8F8F8");
- });
- });
- // запрашивать обновление постов в теме каждые 5 сек
- function DynamicUpdate(topicId) {
- $.ajax({
- url: '@Url.Action("GetNewTopics", new { id = categoryId })/?dateFrom=' + ajaxLastUpdate,
- dataType: "json", // тип загружаемых данных
- success: function (data) { // вешаем свой обработчик на функцию success
- $.each(data, function (i, item) { // обрабатываем полученные данные
- // если топик уже существует
- if ( $("#topic" + item.Id).is('*') )
- {
- var parent = $("#topic" + item.Id).parent().parent();
- $(parent).find(".post-count span").html(item.PostCount);
- $(parent).find(".last-date span").html(item.LastPostDateString);
- $(parent).find(".last-author span").html(item.LastPostUserName).parent().parent().addClass("new").css("background", newColor);
- }
- // иначе добавить новый пост
- else
- {
- $(".forum-items-container").prepend(item.Html)
- $(".forum-items-container .flagNew").hide(0).slideDown().removeClass("flagNew");
- $("#topic" + item.Id).parent().addClass("new").css("background", newColor);
- }
- // обновить дату последнего сообщения
- ajaxLastUpdate = item.LastPostDate;
- });
- }
- });
- setTimeout("DynamicUpdate()", 5000);
- }
- </script>
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement