Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#85 User receives notification for comments on articles #118

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions app/controllers/notifications_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#
class NotificationsController < ApplicationController


# Author: Mayar, Omar Essam
# Date: 1.5.2015
# controlling notification
def clear
current_user.notifier = 0
current_user.save
end
def sherief
render :partial => 'sheriet'
end
def sheriet

end
def maya
@articles = []
Comment.all.order(created_at: :desc).each do |c|

@article = Article.find(c.article_id)
if @article.user_id == current_user.id
@articles << @article.id
end
end
@n = current_user.notifier
@articles = @articles[0..(@n-1)]
render :partial => 'mayar'
end
def getarticle
@id = params[:id2]
@title =Article.find(@id).title
render :partial => 'article'
end
end
152 changes: 97 additions & 55 deletions app/views/layouts/application.html.erb
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,92 +1,97 @@
<!DOCTYPE html>
<html>
<head>
<title>WordSpace</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<link href="http://fonts.googleapis.com/css?family=Kaushan+Script" rel="stylesheet" type="text/css">
<%= javascript_include_tag :defaults %>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header page-scroll">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#page-top">Wordspace</a>
</div>
<!DOCTYPE html>
<html>
<head>
<title>WordSpace</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<link href="http://fonts.googleapis.com/css?family=Kaushan+Script" rel="stylesheet" type="text/css">
<%= javascript_include_tag :defaults %>
</head>
<body>

<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="hidden">
<a href="#page-top"></a>
</li>
<li>
<a href="#editor">Editor's Choice <span class="fa fa-trophy"></span></a>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header page-scroll">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#page-top">Wordspace</a>
</div>

<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li class="hidden">
<a href="#page-top"></a>
</li>
<li>
<a href="#editor">Editor's Choice <span class="fa fa-trophy"></span></a>
</li>
<li>
<a href="#sport">Sports <span class="fa fa-soccer-ball-o"></a>
</li>
<li>
<a href="#sport">Sports <span class="fa fa-soccer-ball-o"></a>
<a href="#art">Art <span class="fa fa-paint-brush"></a>
</li>
<li>
<a href="#art">Art <span class="fa fa-paint-brush"></a>
<a href="#economy">Economy <span class="fa fa-bar-chart"></a>
</li>
<li>
<a href="#economy">Economy <span class="fa fa-bar-chart"></a>
<a href="#politics">Politics <span class="fa fa-institution"></a>
</li>
<li>
<a href="#politics">Politics <span class="fa fa-institution"></a>
</li>
<li>
<a id="search" style="cursor: pointer;"><span class="fa fa-search"></span></a>
</li>
<a id="search" style="cursor: pointer;"><span class="fa fa-search"></span></a>
</li>
<% if user_signed_in? %>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span id = "notify" class="fa fa-globe"></span> <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" style="width: 100%" >

</ul>

<ul class="dropdown-menu" role="menu" style="width: 320%">
<div id= "notification">
</div>
<li id ="clear">
<a href="#clear"><font size ='1'>clear <span class="fa fa-refresh "></font></a>
</li>

</ul>
</li>

<% if user_signed_in? %>
<!-- showing user first name if signed in -->
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="fa fa-user"></span> <%=current_user.firstname %> <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" style="width: 100%">
<li><%= link_to "Write Article", new_article_path %></li>

<% if current_user.is_sponsor == 1%>
<% if current_user.is_sponsor %>
<li>
<%= link_to "Sponsor Controls", '/sponsors/control' %>
</li>
<%end %>

<li><%= link_to "New Magazine", new_magazine_path%></li>
<li><%= link_to 'Edit Profile',edit_user_registration_path %></li>
<li><%= link_to "New Magazine", new_magazine_path%></li>
<li><%= link_to "My Magazines",'/users/mymagazines'%></li>
<li><%= link_to "Sign out", destroy_user_session_path, :method => :delete%></li>
<li><%= link_to "Invitations", collaboration_invitations_path %></li>
<li><%= link_to "$#{current_user.balance/100} in Wallet", payments_path %></li>
<li><%= link_to 'My articles','/users/controls' %></li>
<% if current_user.is_moderator %>
<li><%= link_to 'Reports', :controller => :users, :action => :reports, :id => current_user.id %></li>
<li><%= link_to 'Banned Users', :controller => :users, :action => :banned_users, :id => current_user.id %></li>
<% end %>

</ul>

</li>
<!-- showing sign in and sign up if user not signed in -->
<%else%>

<li>
<%= link_to "Sign in", new_user_session_path %>
</li>
<li>
<%= link_to "Sign up", new_user_registration_path%>
</li>
<% end %>

<%end%>
</ul>
</div>
<!-- /.navbar-collapse -->
Expand All @@ -103,8 +108,6 @@
</div>
</div>
<div style="height: 120px;"></div>


<%= yield %>
<br>
<!-- footer starts -->
Expand All @@ -121,3 +124,42 @@
</div>
</body>
</html>
<script>
$(document).ready(
function() {
$("#clear").click(function(){
$.ajax({url: "/notifications/clear", type: "POST"});
});
setInterval(function() {
$.get('/notifications/notifye', function (data) {
$('#notify').text(
data
);
document.getElementById('notification').innerHTML = "";
}) ;
$.get('/notifications/notifyee', function (data) {
var x = data.slice(1,-2);
var q= "d";
if (x!=""){
var y = x.split(", ");
var c= ""
var r ="";
for(var i= 0; i<y.length; ++i){
var t =y[i];
var id= parseInt(t)

var action = "/articles/"+t;
$.get('/notifications/getarticle?id2='+id, function (data2) {
r= '<li><a href='+action+'>'+'a new comment on '+data2+'</a></li>';
$('#notification').append(r);
});

}
}
else{
document.getElementById('notification').innerHTML = x
}
});
}, 3000);
});
</script>
1 change: 1 addition & 0 deletions app/views/notifications/_article.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%= @title %>
7 changes: 7 additions & 0 deletions app/views/notifications/_mayar.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<% if current_user.notifier != 0 %>
<%= @articles %>


<% else %>
<%= [] %>
<%end %>
1 change: 1 addition & 0 deletions app/views/notifications/_sheriet.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%= current_user.notifier %>
1 change: 1 addition & 0 deletions app/views/notifications/notify.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<div id = "notifynotify"><%= @commentnotifier %></div>