@@ -38,7 +38,7 @@
|
||||
}
|
||||
|
||||
.icon-badge {
|
||||
background-image: url('../../../core/img/places/calendar-dark.svg');
|
||||
background-image: url('../img/calendar-dark.svg');
|
||||
}
|
||||
|
||||
.icon-toggle-compact-collapsed {
|
||||
|
||||
@@ -1258,7 +1258,6 @@ input.input-inline {
|
||||
|
||||
.tab {
|
||||
height: 100%;
|
||||
overflow: scroll;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1
img/calendar-dark.svg
Normal file
1
img/calendar-dark.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32" version="1.1" height="32" viewbox="0 0 32 32"><path fill="#000" d="m8 2c-1.108 0-2 0.892-2 2v4c0 1.108 0.892 2 2 2s2-0.892 2-2v-4c0-1.108-0.892-2-2-2zm16 0c-1.108 0-2 0.892-2 2v4c0 1.108 0.892 2 2 2s2-0.892 2-2v-4c0-1.108-0.892-2-2-2zm-13 4v2c0 1.662-1.338 3-3 3s-3-1.338-3-3v-1.875a3.993 3.993 0 0 0 -3 3.875v16c0 2.216 1.784 4 4 4h20c2.216 0 4-1.784 4-4v-16a3.993 3.993 0 0 0 -3 -3.875v1.875c0 1.662-1.338 3-3 3s-3-1.338-3-3v-2zm-4.906 10h19.812a0.09 0.09 0 0 1 0.094 0.094v9.812a0.09 0.09 0 0 1 -0.094 0.094h-19.812a0.09 0.09 0 0 1 -0.094 -0.094v-9.812a0.09 0.09 0 0 1 0.094 -0.094z"/></svg>
|
||||
|
After Width: | Height: | Size: 646 B |
@@ -434,6 +434,14 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
|
||||
};
|
||||
};
|
||||
|
||||
$scope.colorValue = function(color) {
|
||||
const re = /^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/;
|
||||
if (re.test(color)) {
|
||||
return color;
|
||||
}
|
||||
return '';
|
||||
};
|
||||
|
||||
$scope.attachmentCount = function(card) {
|
||||
if (Array.isArray(card.attachments)) {
|
||||
return card.attachments.filter((obj) => obj.deletedAt === 0).length;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<div id="stack-add" ng-if="boardservice.canEdit() && checkCanEdit()">
|
||||
<form class="ng-pristine ng-valid" ng-submit="createStack()">
|
||||
<label for="new-stack-input" class="hidden-visually"><?php p($l->t('Add a new stack')); ?></label>
|
||||
<label for="new-stack-input-<?php p($_['headerControlsId']); ?>" class="hidden-visually"><?php p($l->t('Add a new stack')); ?></label>
|
||||
<input type="text" class="no-close" placeholder="<?php p($l->t('Add a new stack')); ?>"
|
||||
ng-focus="status.addStack=true"
|
||||
ng-blur="status.addStack=false"
|
||||
ng-model="newStack.title" required
|
||||
id="new-stack-input"
|
||||
id="new-stack-input-<?php p($_['headerControlsId']); ?>"
|
||||
maxlength="100" />
|
||||
<button class="button-inline icon icon-add" ng-style="{'opacity':'{{status.addStack ? 1: 0.5}}'}" type="submit" title="<?php p($l->t('Submit')); ?>">
|
||||
<span class="hidden-visually"><?php p($l->t('Submit')); ?></span>
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
</div>
|
||||
|
||||
<div class="board-header-controls hidden">
|
||||
<?php print_unescaped($this->inc('part.board.headerControls')); ?>
|
||||
<?php print_unescaped($this->inc('part.board.headerControls', ['headerControlsId' => 'main'])); ?>
|
||||
</div>
|
||||
<div class="board-header-controls app-popover-menu-utils">
|
||||
<button class="icon-more button"></button>
|
||||
<div class="popovermenu hidden">
|
||||
<div id="popover-controls">
|
||||
<?php print_unescaped($this->inc('part.board.headerControls')); ?>
|
||||
<?php print_unescaped($this->inc('part.board.headerControls', ['headerControlsId' => 'popover'])); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<ul class="activities" infinite-scroll="$ctrl.page()" infinite-scroll-container="'#app-sidebar'">
|
||||
<li class="activity box" ng-repeat="activity in $ctrl.getData($ctrl.element.id)">
|
||||
<ul class="activities" infinite-scroll="$ctrl.page()" infinite-scroll-container="'#app-sidebar'" infinite-scroll-disabled="$ctrl.activityservice.running">
|
||||
<li ng-if="$ctrl.loadingNewer()"><div class="icon-loading-small"></div></li>
|
||||
<li class="activity box" ng-repeat="activity in $ctrl.getData($ctrl.element.id) track by $index">
|
||||
<div class="activity-icon">
|
||||
<img src="{{activity.icon}}" alt="">
|
||||
</div>
|
||||
@@ -7,6 +8,8 @@
|
||||
ng-bind-html="$ctrl.parseMessage(activity.subject_rich[0], activity.subject_rich[1])"></div>
|
||||
<span class="activitytime has-tooltip live-relative-timestamp"
|
||||
data-timestamp="{{ activity.timestamp }}">{{ activity.timestamp/1000 | relativeDateFilter }}</span>
|
||||
<div class="activitymessage">{{ activity.activity_id }}</div>
|
||||
<div class="activitymessage" ng-bind-html="activity.message"></div>
|
||||
</li>
|
||||
|
||||
<li ng-if="$ctrl.loading"><div class="icon-loading-small"></div></li>
|
||||
</ul>
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
<div class="section-header-tabbed">
|
||||
<ul class="tabHeaders ng-scope">
|
||||
<li class="tabHeader selected" ng-class="{'selected': (params.tab==0 || !params.tab)}" ui-sref="{tab: 0}"><a><?php p($l->t('Description')); ?></a></li>
|
||||
<li class="tabHeader" ng-class="{'selected': (params.tab==0 || !params.tab)}" ui-sref="{tab: 0}"><a><?php p($l->t('Description')); ?></a></li>
|
||||
<li class="tabHeader" ng-class="{'selected': (params.tab==1)}" ui-sref="{tab: 1}"><a><?php p($l->t('Attachments')); ?></a></li>
|
||||
<li class="tabHeader" ng-class="{'selected': (params.tab==2)}" ui-sref="{tab: 2}"><a><?php p($l->t('Activity')); ?></a></li>
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<div class="colorselect" ng-controller="ColorPickerController">
|
||||
<div class="color" ng-repeat="c in ::colors" ng-style="{'background-color':'#{{ c }}'}" ng-click="b=setColor(b,c)" ng-class="{'selected': (c == b.color) }"></div>
|
||||
<label class="colorselect-label{{ b.color | iconWhiteFilter }} color" ng-style="getCustomBackground(b.hashedColor)" ng-init="b.hashedColor='#' + b.color">
|
||||
<input class="color" type="color" ng-model="b.hashedColor" value="#{{b.color}}" ng-change="b=setHashedColor(b)"/>
|
||||
<input class="color" type="color" ng-model="b.hashedColor" ng-value="colorValue(b.color)" ng-change="b=setHashedColor(b)"/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -59,7 +59,7 @@
|
||||
<div class="colorselect" ng-controller="ColorPickerController">
|
||||
<div class="color" ng-repeat="c in ::colors" ng-style="{'background-color':'#{{ c }}'}" ng-click="selectColor(c);newBoard=setColor(newBoard,c)" ng-class="{'selected': (c == newBoard.color), 'dark': (newBoard.color | textColorFilter) === '#ffffff' }"><br /></div>
|
||||
<label class="colorselect-label{{ newBoard.color | iconWhiteFilter }} color" ng-style="getCustomBackground(newBoard.hashedColor)" ng-init="newBoard.hashedColor='#' + newBoard.color">
|
||||
<input class="color" type="color" ng-model="newBoard.hashedColor" value="#{{newBoard.color}}" ng-change="newBoard=setHashedColor(newBoard)"/>
|
||||
<input class="color" type="color" ng-model="newBoard.hashedColor" ng-value="colorValue(newBoard.color)" ng-change="newBoard=setHashedColor(newBoard)"/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user