ghost
3 years ago
11 changed files with 193 additions and 174 deletions
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
<?php |
||||
|
||||
require(PROJECT_DIR . '/application/view/common/module/feed.phtml'); |
@ -0,0 +1 @@
@@ -0,0 +1 @@
|
||||
<div class="moduleFeed" id="moduleFeed"></div> |
@ -1,13 +1,13 @@
@@ -1,13 +1,13 @@
|
||||
<div class="modulePost"> |
||||
<div class="modulePost" id="modulePost"> |
||||
<form action="/" method="POST" name="post"> |
||||
<div class="avatar"> |
||||
<img src="<?php echo PROJECT_HOST ?>/api/image?hash=<?php echo $_SESSION['userName'] ?>" alt="" /> |
||||
</div> |
||||
<div class="message"> |
||||
<textarea name="post" placeholder="<?php echo _('Enter your post...') ?>" id="message"></textarea> |
||||
<textarea name="post" placeholder="<?php echo _('Enter your post...') ?>"></textarea> |
||||
</div> |
||||
<div class="action"> |
||||
<div class="button" onclick="Home.post.add('#feed', '#message')"><?php echo _('Send') ?></div> |
||||
<div class="button" onclick="ModulePost.add()"><?php echo _('Send') ?></div> |
||||
</div> |
||||
</form> |
||||
</div> |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
.moduleFeed .item { |
||||
padding: 16px; |
||||
margin-bottom: 2px; |
||||
color: #1c1d1e; |
||||
background: rgb(238, 238, 238); |
||||
border-radius: 3px; |
||||
min-height: 84px; |
||||
} |
||||
|
||||
.moduleFeed .item .avatar { |
||||
position: absolute; |
||||
top: 19px; |
||||
left: 19px; |
||||
} |
||||
|
||||
.moduleFeed .item .avatar img { |
||||
border-radius: 50%; |
||||
border: 2px #fff solid; |
||||
} |
||||
|
||||
.moduleFeed .item .message { |
||||
padding-left: 73px; |
||||
letter-spacing: 0.2px; |
||||
font-size: 13px; |
||||
} |
||||
|
||||
.moduleFeed .item .message .retwist { |
||||
border: 1px #ccc solid; |
||||
padding: 8px; |
||||
border-radius: 3px; |
||||
background: #e6e6e6; |
||||
margin-top: 8px |
||||
} |
||||
|
||||
.moduleFeed .item .message .quote { |
||||
margin-top: 8px |
||||
} |
||||
|
||||
.moduleFeed .item .message .info { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.moduleFeed .item .message .info .time { |
||||
float: right; |
||||
font-weight: normal; |
||||
} |
@ -1,127 +1,12 @@
@@ -1,127 +1,12 @@
|
||||
var Home = { |
||||
template: { |
||||
feed: { |
||||
item: { |
||||
append: function(feed, userName, time, message, reTwist) { |
||||
|
||||
if (reTwist === undefined || reTwist.length == 0) { |
||||
var rt = false; |
||||
} else { |
||||
var rt = $( |
||||
$('<div/>', { |
||||
'class': 'retwist' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'info' |
||||
}).append( |
||||
reTwist.userName |
||||
).append( |
||||
$('<span/>', { |
||||
'class': 'time' |
||||
}).append( |
||||
reTwist.time |
||||
) |
||||
) |
||||
).append(reTwist.message) |
||||
); |
||||
} |
||||
|
||||
$(feed).append( |
||||
$('<div/>', { |
||||
'class': 'item' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'avatar' |
||||
}).append( |
||||
$('<img/>', { |
||||
'src': '/api/image?hash=' + userName, |
||||
'alt': '', |
||||
}) |
||||
) |
||||
).append( |
||||
$('<div/>', { |
||||
'class': 'message' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'info' |
||||
}).append( |
||||
userName |
||||
).append( |
||||
$('<span/>', { |
||||
'class': 'time' |
||||
}).append( |
||||
time |
||||
) |
||||
) |
||||
).append(rt).append( |
||||
$('<div/>', { |
||||
'class': (message != '' ? 'quote' : '') |
||||
}).append(message) |
||||
) |
||||
) |
||||
); |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
post: { |
||||
add: function(feed, input) { |
||||
$.ajax({ |
||||
url: 'api/post/add', |
||||
type: 'POST', |
||||
data: { |
||||
message: $(input).val() |
||||
}, |
||||
success: function (response) { |
||||
|
||||
if (response.success) { |
||||
|
||||
$(input).val(''); |
||||
|
||||
Home.post.get(feed, true); |
||||
|
||||
} else { |
||||
alert(response.message); |
||||
} |
||||
}, |
||||
error: function(jqXHR, textStatus, errorThrown) { |
||||
console.log(textStatus, errorThrown); |
||||
} |
||||
}); |
||||
}, |
||||
get: function(feed, reFresh) { |
||||
$.ajax({ |
||||
url: 'api/post/get', |
||||
type: 'POST', |
||||
data: {}, |
||||
success: function (response) { |
||||
if (response.success) { |
||||
|
||||
if (reFresh) { |
||||
$(feed).html(''); |
||||
} |
||||
|
||||
$(response.posts).each(function() { |
||||
Home.template.feed.item.append(feed, this.userName, this.time, this.message, this.reTwist); |
||||
}); |
||||
|
||||
} else { |
||||
|
||||
alert(response.message); |
||||
|
||||
} |
||||
}, |
||||
error: function(jqXHR, textStatus, errorThrown) { |
||||
console.log(textStatus, errorThrown); |
||||
} |
||||
}); |
||||
}, |
||||
} |
||||
} |
||||
|
||||
$(document).ready(function() { |
||||
|
||||
Home.post.get('#feed', true); |
||||
// Init modules
|
||||
ModuleMenu.init('/'); |
||||
ModuleFeed.load('#moduleFeed', true); |
||||
|
||||
// Event listeners
|
||||
$(document).on('modulePost.add:success', function(/*event, response*/) { |
||||
ModuleFeed.load('#moduleFeed', true); |
||||
}); |
||||
|
||||
$('#moduleMenu > a[href="/"]').addClass('active'); |
||||
}); |
@ -0,0 +1,92 @@
@@ -0,0 +1,92 @@
|
||||
var ModuleFeed = { |
||||
template: { |
||||
feed: { |
||||
item: { |
||||
append: function(feed, userName, time, message, reTwist) { |
||||
if (reTwist === undefined || reTwist.length == 0) { |
||||
var rt = false; |
||||
} else { |
||||
var rt = $( |
||||
$('<div/>', { |
||||
'class': 'retwist' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'info' |
||||
}).append( |
||||
reTwist.userName |
||||
).append( |
||||
$('<span/>', { |
||||
'class': 'time' |
||||
}).append( |
||||
reTwist.time |
||||
) |
||||
) |
||||
).append(reTwist.message) |
||||
); |
||||
} |
||||
$(feed).append( |
||||
$('<div/>', { |
||||
'class': 'item' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'avatar' |
||||
}).append( |
||||
$('<img/>', { |
||||
'src': '/api/image?hash=' + userName, |
||||
'alt': '', |
||||
}) |
||||
) |
||||
).append( |
||||
$('<div/>', { |
||||
'class': 'message' |
||||
}).append( |
||||
$('<div/>', { |
||||
'class': 'info' |
||||
}).append( |
||||
userName |
||||
).append( |
||||
$('<span/>', { |
||||
'class': 'time' |
||||
}).append( |
||||
time |
||||
) |
||||
) |
||||
).append(rt).append( |
||||
$('<div/>', { |
||||
'class': (message != '' ? 'quote' : '') |
||||
}).append(message) |
||||
) |
||||
) |
||||
); |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
load: function(feed, reFresh) { |
||||
$.ajax({ |
||||
url: 'api/post/get', |
||||
type: 'POST', |
||||
data: {}, |
||||
success: function (response) { |
||||
if (response.success) { |
||||
|
||||
if (reFresh) { |
||||
$(feed).html(''); |
||||
} |
||||
|
||||
$(response.posts).each(function() { |
||||
ModuleFeed.template.feed.item.append(feed, this.userName, this.time, this.message, this.reTwist); |
||||
}); |
||||
|
||||
} else { |
||||
|
||||
alert(response.message); |
||||
|
||||
} |
||||
}, |
||||
error: function(jqXHR, textStatus, errorThrown) { |
||||
console.log(textStatus, errorThrown); |
||||
} |
||||
}); |
||||
}, |
||||
} |
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
var ModuleMenu = { |
||||
init: function(href) { |
||||
$('#moduleMenu a[href="' + href + '"]').addClass('active'); |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
var ModulePost = { |
||||
add: function() { |
||||
|
||||
var input = $('#modulePost textarea'); |
||||
|
||||
$.ajax({ |
||||
url: 'api/post/add', |
||||
type: 'POST', |
||||
data: { |
||||
message: input.val() |
||||
}, |
||||
success: function (response) { |
||||
|
||||
if (response.success) { |
||||
|
||||
input.val(''); |
||||
|
||||
$(document).trigger('modulePost.add:success', [response]); |
||||
|
||||
} else { |
||||
|
||||
alert(response.message); |
||||
} |
||||
}, |
||||
error: function(jqXHR, textStatus, errorThrown) { |
||||
console.log(textStatus, errorThrown); |
||||
} |
||||
}); |
||||
}, |
||||
} |
Loading…
Reference in new issue