content block not working
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 hours ago
Hello Everyone,
There were 1 existing content block which filter based on closed_at field. I just renamed it and then this was not working in dashboard tab. I again changed the name to previous one. but still this content block filter was not working. Hence could someone please assist what was broken or where i made the issue?
sharing script below for reference
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<style>
select {
width: 100%;
height: 100% !important;
}
.row {
margin: 4px;
width: 100%;
}
.mainRow {
display: flex;
justify-content: space-between;
gap: 16px;
height: 80%;
}
.selectRow {
height: 80%;
}
</style>
<script>
var yearSelectTaskClosing = document.getElementById('selectYearTaskClosing');
var monthSelectTaskClosing = document.getElementById('selectMonthTaskClosing');
var quarterSelectTaskClosing = document.getElementById('selectQuarterTaskClosing');
var weekSelectTaskClosing = document.getElementById('selectWeekTaskClosing');
var my_dashboardMessageHandler = new DashboardMessageHandler("FilterDateTaskClosing");
function publishFilterDateTaskClosing(query) {
var filter_message = {};
filter_message.id = "FilterDateTaskClosing";
filter_message.table = "sn_slm_task";
filter_message.filter = query;
SNC.canvas.interactiveFilters.setDefaultValue({
id: filter_message.id,
filters: [filter_message]
}, false);
my_dashboardMessageHandler.publishFilter(filter_message.table, filter_message.filter);
}
function clearClosingTask() {
var elements = yearSelectTaskClosing.options;
for(var i = 0; i < elements.length; i++){
elements[i].selected = false;
}
yearChangeClosing(true);
elements = monthSelectTaskClosing.options;
for(var i = 0; i < elements.length; i++){
elements[i].selected = false;
}
elements = quarterSelectTaskClosing.options;
for(var i = 0; i < elements.length; i++){
elements[i].selected = false;
}
elements = weekSelectTaskClosing.options;
for(var i = 0; i < elements.length; i++){
elements[i].selected = false;
}
buildQueryTaskClosing();
}
function clearFilterTask() {
var filter_message = {};
filter_message.id = "FilterDateTaskClosing";
filter_message.table = "sn_slm_task";
filter_message.filter = "";
SNC.canvas.interactiveFilters.setDefaultValue({
id: filter_message.id,
filters: [filter_message]
}, false);
my_dashboardMessageHandler.removeFilter();
}
function getSelectValues(sel) {
var result = [];
var options = sel ? sel.options : [];
var opt;
for (var i = 0; i < options.length; i++) {
opt = options[i];
if (opt.selected) {
result.push(opt.value);
}
}
return result;
}
function buildQueryTaskClosing() {
var years = getSelectValues(yearSelectTaskClosing);
var months = getSelectValues(monthSelectTaskClosing);
var quarters = getSelectValues(quarterSelectTaskClosing);
var weeks = getSelectValues(weekSelectTaskClosing);
var queryBuilder = [];
if (weeks.length > 0 && weeks.indexOf('all') == -1) {
var weeksQueryBuilder = [];
for (var i = 0; i < weeks.length; i++) {
var year = weeks[i].substring(0,4);
var week = parseInt(weeks[i].substring(4,6));
var weekLabel = 'Week' + week;
weeksQueryBuilder.push("closed_atDATEPART" + weekLabel + "@javascript:gs.datePart('week','" + weeks[i] + "','EE')^closed_atDATEPART" + year + "@javascript:gs.datePart('year','" + year + "','EE')");
}
queryBuilder.push(weeksQueryBuilder.join('^OR'));
}
if (months.length > 0 && months.indexOf('all') == -1) {
var monthsQueryBuilder = [];
for (var i = 0; i < months.length; i++) {
var year = months[i].substring(0,4);
var monthNumber = parseInt(months[i].substring(4,6));
var monthLabel = getMonthName(monthNumber);
monthsQueryBuilder.push("closed_atDATEPART" + monthLabel + "@javascript:gs.datePart('month','" + monthLabel + "','EE')^closed_atDATEPART" + year + "@javascript:gs.datePart('year','" + year + "','EE')");
}
queryBuilder.push(monthsQueryBuilder.join('^OR'));
}
if (quarters.length > 0 && quarters.indexOf('all') == -1) {
var quartersQueryBuilder = [];
for (var i = 0; i < quarters.length; i++) {
var year = quarters[i].substring(0,4);
var quarter = parseInt(quarters[i].substring(4,6));
quartersQueryBuilder.push("closed_atDATEPARTQuarter" + quarter + "@javascript:gs.datePart('quarter','" + quarter + "','EE')^closed_atDATEPART" + year + "@javascript:gs.datePart('year','" + year + "','EE')");
}
queryBuilder.push(quartersQueryBuilder.join('^OR'));
}
if (years.length > 0 && years.indexOf('all') == -1) {
var yearsQueryBuilder = [];
for (var i = 0; i < years.length; i++) {
yearsQueryBuilder.push("closed_atDATEPART" + years[i] + "@javascript:gs.datePart('year','" + years[i] + "','EE')");
}
queryBuilder.push(yearsQueryBuilder.join('^OR'));
}
var query = queryBuilder.join('^');
console.log(query);
publishFilterDateTaskClosing(query);
}
function getMonthName(monthNumber) {
var months = [
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
if (monthNumber < 1 || monthNumber > 12) {
return null;
}
return months[monthNumber - 1];
}
yearChangeClosing(true);
function yearChangeClosing(onLoad){
//var quarterSelectTaskClosing = document.getElementById('selectQuarterTaskClosing');
var selectedYearsSelect = getSelectValues(yearSelectTaskClosing);
var selectedYears = ['2023','2024','2025'];
if(selectedYearsSelect.length>0 && selectedYearsSelect.indexOf('all')==-1){
selectedYears = selectedYearsSelect;
}
quarterSelectTaskClosing.innerHTML = '<option value="all">All</option>';
weekSelectTaskClosing.innerHTML = '<option value="all">All</option>';
monthSelectTaskClosing.innerHTML = '<option value="all">All</option>';
var today = new Date();
var currentYear = today.getFullYear();
var currentMonth = today.getMonth() + 1;
var startOfYear = new Date(today.getFullYear(), 0, 1);
var daysSinceStart = Math.floor((today - startOfYear) / 86400000);
var currentWeek = Math.ceil((daysSinceStart + 1) / 7);
var maxQuarter = 4;
if (selectedYears.indexOf(currentYear.toString()) !== -1) {
if (currentMonth <= 3) maxQuarter = 1;
else if (currentMonth <= 6) maxQuarter = 2;
else if (currentMonth <= 9) maxQuarter = 3;
else maxQuarter = 4;
}
for (var j = 0; j < selectedYears.length; j++) {
var year = selectedYears[j];
var lastWeek = 53;
if (year === currentYear.toString()) {
lastWeek = currentWeek;
}
for (var w = 1; w<=lastWeek; w++ ){
var weekStr = w.toString();
if(weekStr.length==1){
weekStr = '0'+weekStr;
}
var value = year + weekStr;
var option = document.createElement('option');
option.value = value;
option.text = value;
weekSelectTaskClosing.appendChild(option);
}
var lastMonth = 12;
if (year === currentYear.toString()) {
lastMonth = currentMonth;
}
for (var m = 1; m<=lastMonth; m++ ){
var monthStr = m.toString();
if(monthStr.length==1){
monthStr = '0'+monthStr;
}
var value = year + monthStr;
var option = document.createElement('option');
option.value = value;
option.text = value;
monthSelectTaskClosing.appendChild(option);
}
var lastQuarter = 4;
if (year === currentYear.toString()) {
lastQuarter = maxQuarter;
}
for (var q = 1; q <= lastQuarter; q++) {
var value = year + '0' + q;
var option = document.createElement('option');
option.value = value;
option.text = value;
quarterSelectTaskClosing.appendChild(option);
}
}
if(!onLoad){
buildQueryTaskClosing();
}
}
</script>
<div class="row mainRow">
<div style="width: 25%">
<div class="row">Year</div>
<div class="row selectRow">
<select id="selectYearTaskClosing" multiple="true" onchange="yearChangeClosing()">
<option value="all">All</option>
<option value="2023">2023</option>
<option value="2024">2024</option>
<option value="2025">2025</option>
</select>
</div>
</div>
<div style="width: 25%">
<div class="row">Quarter</div>
<div class="row selectRow">
<select id="selectQuarterTaskClosing" multiple="true" onchange="buildQueryTaskClosing()">
<option value="all">All</option>
</select>
</div>
</div>
<div style="width: 25%">
<div class="row">Month</div>
<div class="row selectRow">
<select id="selectMonthTaskClosing" multiple="true" onchange="buildQueryTaskClosing()">
<option value="all">All</option>
</select>
</div>
</div>
<div style="width: 25%">
<div class="row">Week</div>
<div class="row selectRow">
<select id="selectWeekTaskClosing" multiple="true" onchange="buildQueryTaskClosing()">
<option value="all">All</option>
</select>
</div>
</div>
</div>
<div class="row">
<button onclick="clearClosingTask()">Clear filters</button>
</div>
</j:jelly>
Labels:
- Labels:
-
H
0 REPLIES 0