From 398a4927e195755bd6a46be99337efd8dacc3dc2 Mon Sep 17 00:00:00 2001 From: 박지현 <jhpark@maprex.co.kr> Date: 월, 07 3월 2022 18:08:13 +0900 Subject: [PATCH] Merge branch 'master' of http://maprex.iptime.org:9001/r/owl-kisa --- src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | 310 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 183 insertions(+), 127 deletions(-) diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js index 87d40cf..e33066e 100644 --- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js +++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js @@ -74,10 +74,14 @@ // �봽濡쒖젥�듃 �씠由�(�봽濡쒖젥�듃 由ъ뒪�듃�뿉�꽌 �궗�슜) case "PROJECT_NAME" : - if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) { - makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; - } else { - makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + if (!scope.data.parentYn) { + if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) { + makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + } else { + makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + } + }else { + makeTag += "<span class='titlename cursor table-word-break-all sub-line'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; } break; @@ -86,6 +90,17 @@ if (scope.data.projectVo != null) { makeTag += "<span class='titlenameSelect'>" + myToken + scope.data.projectVo.name.replace(/</gi, '<') + "</span>"; } + break; + + // �궗�슜 �뙆�듃�꼫 �씠由�(�씠�뒋 �쑀�삎 由ъ뒪�듃�뿉�꽌 �궗�슜) + case "USE_PARTNERS" : + if (scope.data.usePartnerVos != null) { + var usePartners = []; + for (var i=0; i<scope.data.usePartnerVos.length; i++) { + usePartners.push(scope.data.usePartnerVos[i].byName); + } + makeTag += "<span>" + usePartners + "</span>"; + } break; // �봽濡쒖젥�듃 紐⑸줉�뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶 �꽕�젙 �몴�떆 @@ -231,144 +246,148 @@ break;*/ // �뿰愿� �씠�뒋 �씠�룞(�젣紐�) - case "ISSUE_RELATION_MOVE" : - makeTag += "<span class=\"titlename cursor text-center\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>"; - break; + // case "ISSUE_RELATION_MOVE" : + // makeTag += "<span class=\"titlename cursor text-center\" ng-click=\"event.changeDetailView(data.issueRelation)\">" + scope.data.title + "</span></a>"; + // break; // �뿰愿��씠�뒋 援щ텇 - case "ISSUE_RELATION_TYPE": - makeTag += "<span>" + scope.data.relationIssueTypeName + "</span>"; - break; + // case "ISSUE_RELATION_TYPE": + // makeTag += "<span>" + scope.data.relationIssueTypeName + "</span>"; + // break; // �뿰愿��씠�뒋 �궘�젣 - case "ISSUE_RELATION_DELETE": - makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeRelationIssue(data.id)">'; - break; + // case "ISSUE_RELATION_DELETE": + // if (scope.data.modifyPermissionCheck) { + // makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeRelationIssue(data.id)">'; + // } + // break; // �뿰愿� �씠�뒋 �슦�꽑�닚�쐞 - case "REL_COMMON_PRIORITY" : - makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>"; - break; + // case "REL_COMMON_PRIORITY" : + // makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>"; + // break; // �뿰愿� �씠�뒋 以묒슂�룄 - case "REL_COMMON_SEVERITY" : - makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>"; - break; + // case "REL_COMMON_SEVERITY" : + // makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>"; + // break; // �뿰愿� �씠�뒋 �벑濡앹옄 - case "REL_REGISTER": - scope.data.registerVos = [scope.data.issueRelation.registerVo]; - makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>'; - break; - - break; + // case "REL_REGISTER": + // scope.data.registerVos = [scope.data.issueRelation.registerVo]; + // makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>'; + // break; + // + // break; // �뿰愿� �씠�뒋 �떞�떦遺��꽌 - case "REL_ISSUE_DEPARTMENT" : - makeTag += "<ul class='ul-not-comma'>"; - makeTag += "<div style='color: #000000'>"; - angular.forEach(scope.data.issueRelation.departmentVos, function (departments) { - makeTag += "<li>" + departments.departmentName + "</li>"; - }); - makeTag += "</div>"; - makeTag += "</ul>"; - break; + // case "REL_ISSUE_DEPARTMENT" : + // makeTag += "<ul class='ul-not-comma'>"; + // makeTag += "<div style='color: #000000'>"; + // angular.forEach(scope.data.issueRelation.departmentVos, function (departments) { + // makeTag += "<li>" + departments.departmentName + "</li>"; + // }); + // makeTag += "</div>"; + // makeTag += "</ul>"; + // break; // �뿰愿� �씠�뒋 紐⑸줉�뿉�꽌 湲곌컙 �몴�떆 - case "REL_ISSUE_DUE_DATE" : - if (!$rootScope.isDefined(scope.data.issueRelation.startDate) && !$rootScope.isDefined(scope.data.issueRelation.completeDate)) { - makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>"; - } - else { - makeTag += "<span>" + scope.data.issueRelation.startDate + " ~ " + scope.data.issueRelation.completeDate + "</span>"; - } - break; + // case "REL_ISSUE_DUE_DATE" : + // if (!$rootScope.isDefined(scope.data.issueRelation.startDate) && !$rootScope.isDefined(scope.data.issueRelation.completeDate)) { + // makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>"; + // } + // else { + // makeTag += "<span>" + scope.data.issueRelation.startDate + " ~ " + scope.data.issueRelation.completeDate + "</span>"; + // } + // break; // �뿰愿� �씠�뒋 �궗�슜�옄 �젙�쓽 �븘�뱶 - case "REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW" : - var values = []; - - for (var count in scope.data.issueRelation.issueCustomFieldValueVos) { - var issueCustomFieldValueVo = scope.data.issueRelation.issueCustomFieldValueVos[count]; - // �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎. - if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) { - values.push(issueCustomFieldValueVo.useValue); - } - } - angular.forEach(values, function (value) { - makeTag += '<span class="table-word-break-all cursor">' + value + '<span><br>'; - }); - - break; + // case "REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW" : + // var values = []; + // + // for (var count in scope.data.issueRelation.issueCustomFieldValueVos) { + // var issueCustomFieldValueVo = scope.data.issueRelation.issueCustomFieldValueVos[count]; + // // �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎. + // if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) { + // values.push(issueCustomFieldValueVo.useValue); + // } + // } + // angular.forEach(values, function (value) { + // makeTag += '<span class="table-word-break-all cursor">' + value + '<span><br>'; + // }); + // + // break; // �븯�쐞 �씠�뒋 �씠�룞(�젣紐�) - case "ISSUE_DOWN_MOVE" : - makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data)\">" + scope.data.title + "</span></a>"; - break; - - // �븯�쐞 �씠�뒋 ���엯 - case "ISSUE_DOWN_STATUS_TYPE" : - makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusVo.color + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusVo.name + "</span>"; - break; - + // case "ISSUE_DOWN_MOVE" : + // makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data)\">" + scope.data.title + "</span></a>"; + // break; + // + // // �븯�쐞 �씠�뒋 ���엯 + // case "ISSUE_DOWN_STATUS_TYPE" : + // makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusVo.color + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusVo.name + "</span>"; + // break; + // // �븯�쐞 �씠�뒋 �궘�젣 - case "ISSUE_DOWN_DELETE": - makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">'; - break; - + // case "ISSUE_DOWN_DELETE": + // if (scope.data.modifyPermissionCheck) { + // makeTag += '<img class="cursor" src="/assets/images/delete-icon.png" ng-click="event.removeDownIssue(data.id)">'; + // } + // break; + // // �븯�쐞 �씠�뒋 �슦�꽑 �닚�쐞 - case "DOWN_COMMON_PRIORITY" : - makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>"; - break; - + // case "DOWN_COMMON_PRIORITY" : + // makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.priorityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.priorityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.priorityVo.name + "'></span>"; + // break; + // // �븯�쐞 �씠�뒋 以묒슂�룄 - case "DOWN_COMMON_SEVERITY" : - makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>"; - break; - + // case "DOWN_COMMON_SEVERITY" : + // makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.severityVo.color + "\"," + "\"border-color\"" + " : \"" + scope.data.severityVo.color + "\", \"color\": \"#FFFFFF\" }' translate='" + scope.data.severityVo.name + "'></span>"; + // break; + // // �븯�쐞 �씠�뒋 �떞�떦遺��꽌 - case "DOWN_ISSUE_DEPARTMENT" : - makeTag += "<ul class='ul-not-comma'>"; - makeTag += "<div style='color: #000000'>"; - angular.forEach(scope.data.departmentVos, function (departments) { - makeTag += "<li>" + departments.departmentName + "</li>"; - }); - makeTag += "</div>"; - makeTag += "</ul>"; - break; - + // case "DOWN_ISSUE_DEPARTMENT" : + // makeTag += "<ul class='ul-not-comma'>"; + // makeTag += "<div style='color: #000000'>"; + // angular.forEach(scope.data.departmentVos, function (departments) { + // makeTag += "<li>" + departments.departmentName + "</li>"; + // }); + // makeTag += "</div>"; + // makeTag += "</ul>"; + // break; + // // �븯�쐞 �씠�뒋 �벑濡앹옄 - case "DOWN_REGISTER": - scope.data.registerVos = [scope.data.registerVo]; - makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>'; - break; - + // case "DOWN_REGISTER": + // scope.data.registerVos = [scope.data.registerVo]; + // makeTag += '<div owl-profile-over class="" table-user-image="data" target="registerVos"></div>'; + // break; + // // �븯�쐞 �씠�뒋 湲곌컙 - case "DOWN_ISSUE_DUE_DATE" : - if (!$rootScope.isDefined(scope.data.startDate) && !$rootScope.isDefined(scope.data.completeDate)) { - makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>"; - } - else { - makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>"; - } - break; - + // case "DOWN_ISSUE_DUE_DATE" : + // if (!$rootScope.isDefined(scope.data.startDate) && !$rootScope.isDefined(scope.data.completeDate)) { + // makeTag += "<span translate='common.noDate'>湲곌컙 �뾾�쓬</span>"; + // } + // else { + // makeTag += "<span>" + scope.data.startDate + " ~ " + scope.data.completeDate + "</span>"; + // } + // break; + // // �븯�쐞 �씠�뒋 �궗�슜�옄 �젙�쓽 �븘�뱶 - case "DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW" : - var values = []; - - for (var count in scope.data.issueCustomFieldValueVos) { - var issueCustomFieldValueVo = scope.data.issueCustomFieldValueVos[count]; - // �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎. - if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) { - values.push(issueCustomFieldValueVo.useValue); - } - } - angular.forEach(values, function (value) { - makeTag += '<span class="table-word-break-all">' + value + '<span><br>'; - }); - - break; + // case "DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW" : + // var values = []; + // + // for (var count in scope.data.issueCustomFieldValueVos) { + // var issueCustomFieldValueVo = scope.data.issueCustomFieldValueVos[count]; + // // �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎. + // if (tableConfig.columnHint.id == issueCustomFieldValueVo.customFieldVo.id) { + // values.push(issueCustomFieldValueVo.useValue); + // } + // } + // angular.forEach(values, function (value) { + // makeTag += '<span class="table-word-break-all">' + value + '<span><br>'; + // }); + // + // break; // �씠由꾩쓣 �겢由��븯硫� �닔�젙 �뙘�뾽 �몴�떆 case "COMMON_MODIFY" : @@ -420,6 +439,7 @@ break; // �씠�뒋 �젣紐� case "ISSUE_TITLE" : + scope.data.title = scope.data.title.replace(/</gi, '<'); makeTag += '<div class="tags text-left">'; makeTag += '<i class="fa fa-star move-star" ng-show="$root.currentDetailIssueId == data.id"> </i>'; makeTag += '<span class="number-tag">' + scope.data.projectKey + ' - ' + scope.data.issueNumber + '</span>'; @@ -430,7 +450,7 @@ makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"#EF8D9A" + "\"," + "\"border-color\"" + " : \"#EF8D9A" + "\", \"color\": \"#FFFFFF\" }'>" + "<span>API</span>" + "</span>"; } makeTag += '</div>'; - makeTag += '<div class="titlename cursor text-left" ng-click="event.changeDetailView(data.id)">' + scope.data.title.replace(/</gi, '<') + '</div>'; + makeTag += '<div class="titlename cursor text-left" ng-click="event.changeDetailView(data.id)" translate="' + scope.data.title + '">' + '</div>'; makeTag += '<div class="extra-infodiv text-left">'; makeTag += '<span class="extra-info">'; makeTag += '<i class="os-icon os-icon-mail-12"></i>'; @@ -463,7 +483,8 @@ makeTag += "<ul ng-click=\"event.changeDetailView(data.id)\" class='ul-not-comma cursor'>"; makeTag += "<div style='color: #000000'>"; angular.forEach(scope.data.departmentVos, function (departments) { - makeTag += "<li>" + departments.departmentName + "</li>"; + scope.data.departmentName = departments.departmentName; + makeTag += "<li translate='" + scope.data.departmentName + "'>" + "</li>"; }); makeTag += "</div>"; makeTag += "</ul>"; @@ -490,6 +511,30 @@ }); makeTag += "</div>"; makeTag += "</ul>"; + break; + + // �뾽泥� + case "USE_COMPANY" : + if (scope.data.companyName == null) { + scope.data.companyName = ""; + } + makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.companyName + "'></span>"; + break; + + // ISP + case "USE_ISP" : + if (scope.data.ispName == null) { + scope.data.ispName = ""; + } + makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.ispName + "'></span>"; + break; + + // �샇�뒪�똿 + case "USE_HOSTING" : + if (scope.data.hostingName == null) { + scope.data.hostingName = ""; + } + makeTag += "<span ng-click=\"event.changeDetailView(data.id)\" class='cursor' translate='" + scope.data.hostingName + "'></span>"; break; case "WORKFLOW_NAME": @@ -646,6 +691,12 @@ } break; + case "COMPANYFIELD_IP" : + if ($rootScope.isDefined(scope.data.ipStart) && $rootScope.isDefined(scope.data.ipEnd)) { + makeTag += "<span>" + scope.data.ipStart + "<br>~<br>" + scope.data.ipEnd + "</span>"; + } + break; + case "ISPFIELD_MODIFY" : if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) { makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '<') + "</span>"; @@ -669,14 +720,16 @@ for (var count in scope.data.issueCustomFieldValueVos) { var issueCustomFieldValueVo = scope.data.issueCustomFieldValueVos[count]; + // �뀒�씠釉� �꽕�젙�뿉�꽌 dName 遺�遺꾩뿉 �궗�슜�옄 �젙�쓽 �븘�뱶 id 瑜� �꽔怨� �빐�떦 媛믪쓣 異붿텧�븳�떎. if (tableConfig.columnHint.id === issueCustomFieldValueVo.customFieldVo.id) { values.push(issueCustomFieldValueVo.useValue); } } - angular.forEach(values, function (value) { - makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + value + '<span><br>'; + angular.forEach(values, function (useValue) { + scope.data[tableConfig.dName] = useValue; + makeTag += '<span ng-click="event.changeDetailView(data.id)" class="table-word-break-all cursor">' + scope.data[tableConfig.dName] + '<span>'; }); break; @@ -692,7 +745,8 @@ break; case "NOTICE_REGISTER": - makeTag += '<img src="/assets/images/logineyes.png" style="width:30px;"> <span class="fc-blue bold">OWL ITS TEAM</span>'; + //makeTag += '<img src="/assets/images/logineyes.png" style="width:30px;"> <span class="fc-blue bold">OWL ITS TEAM</span>'; + makeTag += '<img src="/assets/images/logo-kisa.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer+ '</span>'; break; case "GUIDE_MODIFY": if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_GUIDE')) { @@ -705,7 +759,7 @@ break; case "GUIDE_REGISTER": - makeTag += '<img src="/assets/images/logineyes.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer + '</span>'; + makeTag += '<img src="/assets/images/logo-kisa.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer + '</span>'; break; case "GUIDE_ACTIVE" : @@ -745,14 +799,16 @@ break; case "FAQ_REGISTER": - makeTag += '<img src="/assets/images/logineyes.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer + '</span>'; + makeTag += '<img src="/assets/images/logo-kisa.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer + '</span>'; break; case "FAQ_ACTIVE" : - makeTag += "<label class='switch'><input type='checkbox' ng-model='data.activation' ng-click='event.activation(data)'><span class='slider round'></span></label>"; + if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_FAQ')) { + makeTag += "<label class='switch'><input type='checkbox' ng-model='data.activation' ng-click='event.activation(data)'><span class='slider round'></span></label>"; + } break; case "QNA_MODIFY": - if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_QNA')) { + if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_QNA') || $rootScope.user.id === scope.data.registerId) { makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.title.replace(/</gi, '<') + "</span>"; } else { @@ -761,7 +817,7 @@ break; case "QNA_REGISTER": - makeTag += '<img src="/assets/images/logineyes.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer + '</span>'; + makeTag += '<img src="/assets/images/logo-kisa.png" style="width:30px;"> <span class="fc-blue bold">' + scope.data.writer + '</span>'; break; } } -- Gitblit v1.8.0