mirror of
https://github.com/wekan/wekan.git
synced 2026-02-19 14:38:06 +01:00
Renaissance
_,,ad8888888888bba,_
,ad88888I888888888888888ba,
,88888888I88888888888888888888a,
,d888888888I8888888888888888888888b,
d88888PP"""" ""YY88888888888888888888b,
,d88"'__,,--------,,,,.;ZZZY8888888888888,
,8IIl'" ;;l"ZZZIII8888888888,
,I88l;' ;lZZZZZ888III8888888,
,II88Zl;. ;llZZZZZ888888I888888,
,II888Zl;. .;;;;;lllZZZ888888I8888b
,II8888Z;; `;;;;;''llZZ8888888I8888,
II88888Z;' .;lZZZ8888888I888b
II88888Z; _,aaa, .,aaaaa,__.l;llZZZ88888888I888
II88888IZZZZZZZZZ, .ZZZZZZZZZZZZZZ;llZZ88888888I888,
II88888IZZ<'(@@>Z| |ZZZ<'(@@>ZZZZ;;llZZ888888888I88I
,II88888; `""" ;| |ZZ; `""" ;;llZ8888888888I888
II888888l `;; .;llZZ8888888888I888,
,II888888Z; ;;; .;;llZZZ8888888888I888I
III888888Zl; .., `;; ,;;lllZZZ88888888888I888
II88888888Z;;...;(_ _) ,;;;llZZZZ88888888888I888,
II88888888Zl;;;;;' `--'Z;. .,;;;;llZZZZ88888888888I888b
]I888888888Z;;;;' ";llllll;..;;;lllZZZZ88888888888I8888,
II888888888Zl.;;"Y88bd888P";;,..;lllZZZZZ88888888888I8888I
II8888888888Zl;.; `"PPP";;;,..;lllZZZZZZZ88888888888I88888
II888888888888Zl;;. `;;;l;;;;lllZZZZZZZZW88888888888I88888
`II8888888888888Zl;. ,;;lllZZZZZZZZWMZ88888888888I88888
II8888888888888888ZbaalllZZZZZZZZZWWMZZZ8888888888I888888,
`II88888888888888888b"WWZZZZZWWWMMZZZZZZI888888888I888888b
`II88888888888888888;ZZMMMMMMZZZZZZZZllI888888888I8888888
`II8888888888888888 `;lZZZZZZZZZZZlllll888888888I8888888,
II8888888888888888, `;lllZZZZllllll;;.Y88888888I8888888b,
,II8888888888888888b .;;lllllll;;;.;..88888888I88888888b,
II888888888888888PZI;. .`;;;.;;;..; ...88888888I8888888888,
II888888888888PZ;;';;. ;. .;. .;. .. Y8888888I88888888888b,
,II888888888PZ;;' `8888888I8888888888888b,
II888888888' 888888I8888888888888888
,II888888888 ,888888I8888888888888888
,d88888888888 d888888I8888888888ZZZZZZ
,ad888888888888I 8888888I8888ZZZZZZZZZZZZ
888888888888888' 888888IZZZZZZZZZZZZZZZZZ
8888888888P'8P' Y888ZZZZZZZZZZZZZZZZZZZZ
888888888, " ,ZZZZZZZZZZZZZZZZZZZZZZZ
8888888888, ,ZZZZZZZZZZZZZZZZZZZZZZZZZZ
888888888888a, _ ,ZZZZZZZZZZZZZZZZZZZZ88888888
888888888888888ba,_d' ,ZZZZZZZZZZZZZZZZZ8888888888888
8888888888888888888888bbbaaa,,,______,ZZZZZZZZZZZZZZZ88888888888888888
88888888888888888888888888888888888ZZZZZZZZZZZZZZZ88888888888888888888
8888888888888888888888888888888888ZZZZZZZZZZZZZZ8888888888888888888888
888888888888888888888888888888888ZZZZZZZZZZZZZZ88888888888888888888888
8888888888888888888888888888888ZZZZZZZZZZZZZZ8888888888888888888888888
88888888888888888888888888888ZZZZZZZZZZZZZZ888888888888888888888888888
8888888888888888888888888888ZZZZZZZZZZZZZZ88888888888888888 Normand 8
88888888888888888888888888ZZZZZZZZZZZZZZ8888888888888888888 Veilleux 8
8888888888888888888888888ZZZZZZZZZZZZZZ8888888888888888888888888888888
This commit is contained in:
commit
2dbea30842
128 changed files with 10521 additions and 0 deletions
8
client/components/activities/activities.jade
Normal file
8
client/components/activities/activities.jade
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
template(name="activities")
|
||||
.js-sidebar-activities
|
||||
//- We should use Template.dynamic here but there is a bug with
|
||||
//- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30
|
||||
if $eq mode "board"
|
||||
+boardActivities
|
||||
else
|
||||
+cardActivities
|
||||
77
client/components/activities/activities.js
Normal file
77
client/components/activities/activities.js
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
var activitiesPerPage = 20;
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
template: function() {
|
||||
return 'activities';
|
||||
},
|
||||
|
||||
onCreated: function() {
|
||||
var self = this;
|
||||
// XXX Should we use ReactiveNumber?
|
||||
self.page = new ReactiveVar(1);
|
||||
self.loadNextPageLocked = false;
|
||||
var sidebar = self.componentParent(); // XXX for some reason not working
|
||||
sidebar.callFirstWith(null, 'resetNextPeak');
|
||||
self.autorun(function() {
|
||||
var mode = self.data().mode;
|
||||
var capitalizedMode = Utils.capitalize(mode);
|
||||
var id = Session.get('current' + capitalizedMode);
|
||||
var limit = self.page.get() * activitiesPerPage;
|
||||
if (id === null)
|
||||
return;
|
||||
|
||||
self.subscribe('activities', mode, id, limit, function() {
|
||||
self.loadNextPageLocked = false;
|
||||
|
||||
// If the sibear peak hasn't increased, that mean that there are no more
|
||||
// activities, and we can stop calling new subscriptions.
|
||||
// XXX This is hacky! We need to know excatly and reactively how many
|
||||
// activities there are, we probably want to denormalize this number
|
||||
// dirrectly into card and board documents.
|
||||
var a = sidebar.callFirstWith(null, 'getNextPeak');
|
||||
sidebar.calculateNextPeak();
|
||||
var b = sidebar.callFirstWith(null, 'getNextPeak');
|
||||
if (a === b) {
|
||||
sidebar.callFirstWith(null, 'resetNextPeak');
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
loadNextPage: function() {
|
||||
if (this.loadNextPageLocked === false) {
|
||||
this.page.set(this.page.get() + 1);
|
||||
this.loadNextPageLocked = true;
|
||||
}
|
||||
},
|
||||
|
||||
boardLabel: function() {
|
||||
return TAPi18n.__('this-board');
|
||||
},
|
||||
|
||||
cardLabel: function() {
|
||||
return TAPi18n.__('this-card');
|
||||
},
|
||||
|
||||
cardLink: function() {
|
||||
var card = this.currentData().card();
|
||||
return Blaze.toHTML(HTML.A({
|
||||
href: card.absoluteUrl(),
|
||||
'class': 'action-card'
|
||||
}, card.title));
|
||||
},
|
||||
|
||||
memberLink: function() {
|
||||
return Blaze.toHTMLWithData(Template.memberName, {
|
||||
user: this.currentData().member()
|
||||
});
|
||||
},
|
||||
|
||||
attachmentLink: function() {
|
||||
var attachment = this.currentData().attachment();
|
||||
return Blaze.toHTML(HTML.A({
|
||||
href: attachment.url(),
|
||||
'class': 'js-open-attachment-viewer'
|
||||
}, attachment.name()));
|
||||
}
|
||||
}).register('activities');
|
||||
0
client/components/activities/comments.jade
Normal file
0
client/components/activities/comments.jade
Normal file
0
client/components/activities/comments.js
Normal file
0
client/components/activities/comments.js
Normal file
30
client/components/activities/events.js
Normal file
30
client/components/activities/events.js
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
Template.cardActivities.events({
|
||||
'click .js-edit-action': function(evt) {
|
||||
var $this = $(evt.currentTarget);
|
||||
var container = $this.parents('.phenom-comment');
|
||||
|
||||
// open and focus
|
||||
container.addClass('editing');
|
||||
container.find('textarea').focus();
|
||||
},
|
||||
'click .js-confirm-delete-action': function() {
|
||||
CardComments.remove(this._id);
|
||||
},
|
||||
'submit form': function(evt) {
|
||||
var $this = $(evt.currentTarget);
|
||||
var container = $this.parents('.phenom-comment');
|
||||
var text = container.find('textarea');
|
||||
|
||||
if ($.trim(text.val())) {
|
||||
CardComments.update(this._id, {
|
||||
$set: {
|
||||
text: text.val()
|
||||
}
|
||||
});
|
||||
|
||||
// reset editing class
|
||||
$('.editing').removeClass('editing');
|
||||
}
|
||||
evt.preventDefault();
|
||||
}
|
||||
});
|
||||
154
client/components/activities/templates.html
Normal file
154
client/components/activities/templates.html
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
<template name="boardActivities">
|
||||
{{# each currentBoard.activities }}
|
||||
<div class="phenom phenom-action clearfix phenom-other">
|
||||
{{> userAvatar user=user size="extra-small" class="creator js-show-mem-menu" }}
|
||||
<div class="phenom-desc">
|
||||
{{ > memberName user=user }}
|
||||
|
||||
{{# if $eq activityType 'createBoard' }}
|
||||
{{_ 'activity-created' boardLabel}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'createList' }}
|
||||
{{_ 'activity-added' list.title boardLabel}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'archivedList' }}
|
||||
{{_ 'activity-archived' list.title}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'createCard' }}
|
||||
{{{_ 'activity-added' cardLink boardLabel}}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'archivedCard' }}
|
||||
{{{_ 'activity-archived' cardLink}}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'restoredCard' }}
|
||||
{{{_ 'activity-sent' cardLink boardLabel}}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'moveCard' }}
|
||||
{{{_ 'activity-moved' cardLink oldList.title list.title}}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'addBoardMember' }}
|
||||
{{{_ 'activity-added' memberLink boardLabel}}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'removeBoardMember' }}
|
||||
{{{_ 'activity-excluded' memberLink boardLabel}}}.
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'joinMember' }}
|
||||
{{# if $eq currentUser._id member._id }}
|
||||
{{{_ 'activity-joined' cardLink}}}.
|
||||
{{ else }}
|
||||
{{{_ 'activity-added' memberLink cardLink}}}.
|
||||
{{/if}}
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'unjoinMember' }}
|
||||
{{# if $eq currentUser._id member._id }}
|
||||
{{{_ 'activity-unjoined' cardLink}}}.
|
||||
{{ else }}
|
||||
{{{_ 'activity-removed' memberLink cardLink}}}.
|
||||
{{/if}}
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'addComment' }}
|
||||
<div class="phenom-desc">
|
||||
{{{_ 'activity-on' cardLink}}}
|
||||
<div class="action-comment markeddown">
|
||||
<a href="{{ card.absoluteUrl }}" class="current-comment show tdn">
|
||||
<p>{{#viewer}}{{ comment.text }}{{/viewer}}</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ /if }}
|
||||
|
||||
{{# if $eq activityType 'addAttachment' }}
|
||||
<div class="phenom-desc">
|
||||
{{{_ 'activity-attached' attachmentLink cardLink}}}.
|
||||
</div>
|
||||
{{ /if }}
|
||||
</div>
|
||||
<p class="phenom-meta quiet">
|
||||
<span class="date js-hide-on-sending">
|
||||
{{ moment createdAt }}
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
{{ /each }}
|
||||
</template>
|
||||
|
||||
<template name="cardActivities">
|
||||
{{# each currentCard.comments }}
|
||||
<div class="phenom phenom-action clearfix phenom-comment">
|
||||
{{> userAvatar user=user size="small" class="creator js-show-mem-menu" }}
|
||||
<form>
|
||||
<div class="phenom-desc">
|
||||
{{ > memberName user=user }}
|
||||
<div class="action-comment markeddown">
|
||||
<div class="current-comment">
|
||||
{{#viewer}}{{ text }}{{/viewer}}
|
||||
</div>
|
||||
<textarea class="js-text" tabindex="1">{{ text }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="edit-controls clearfix">
|
||||
<input type="submit" class="primary confirm js-save-edit" value="{{_ 'save'}}" tabindex="2">
|
||||
</div>
|
||||
</form>
|
||||
<p class="phenom-meta quiet">
|
||||
<span class="date js-hide-on-sending">{{ moment createdAt }}</span>
|
||||
{{# if currentUser }}
|
||||
<span class="js-hide-on-sending">
|
||||
- <a href="#" class="js-edit-action">{{_ "edit"}}</a>
|
||||
- <a href="#" class="js-confirm-delete-action">{{_ "delete"}}</a>
|
||||
</span>
|
||||
{{/ if }}
|
||||
</p>
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
{{# each currentCard.activities }}
|
||||
<div class="phenom phenom-action clearfix phenom-other">
|
||||
{{> userAvatar user=user size="extra-small" class="creator js-show-mem-menu" }}
|
||||
{{ > memberName user=user }}
|
||||
{{# if $eq activityType 'createCard' }}
|
||||
{{_ 'activity-added' cardLabel list.title}}.
|
||||
{{ /if }}
|
||||
{{# if $eq activityType 'joinMember' }}
|
||||
{{# if $eq currentUser._id member._id }}
|
||||
{{_ 'activity-joined' cardLabel}}.
|
||||
{{ else }}
|
||||
{{{_ 'activity-added' cardLabel memberLink}}}.
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{# if $eq activityType 'unjoinMember' }}
|
||||
{{# if $eq currentUser._id member._id }}
|
||||
{{_ 'activity-unjoined' cardLabel}}.
|
||||
{{ else }}
|
||||
{{{_ 'activity-removed' cardLabel memberLink}}}.
|
||||
{{/if}}
|
||||
{{ /if }}
|
||||
{{# if $eq activityType 'archivedCard' }}
|
||||
{{_ 'activity-archived' cardLabel}}.
|
||||
{{ /if }}
|
||||
{{# if $eq activityType 'restoredCard' }}
|
||||
{{_ 'activity-sent' cardLabel boardLabel}}.
|
||||
{{/ if }}
|
||||
{{# if $eq activityType 'moveCard' }}
|
||||
{{_ 'activity-moved' cardLabel oldList.title list.title}}.
|
||||
{{/ if }}
|
||||
{{# if $eq activityType 'addAttachment' }}
|
||||
{{{_ 'activity-attached' attachmentLink cardLabel}}}.
|
||||
{{# if attachment.isImage }}
|
||||
<img src="{{ attachment.url }}" class="attachment-image-preview">
|
||||
{{/if}}
|
||||
{{/ if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</template>
|
||||
Loading…
Add table
Add a link
Reference in a new issue