(Service Portal Design ServiceNow)
HTML:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> * {box-sizing: border-box} .mySlides1, .mySlides2 {display: none} img {vertical-align: middle;} /* Slideshow container */ /* Next & previous buttons */ .prev, .next { cursor: pointer; position: absolute; top: 50%; width: auto; padding: 16px; margin-top: -22px; color: white; font-weight: bold; font-size: 18px; transition: 0.6s ease; border-radius: 0 3px 3px 0; user-select: none; } /* Position the "next button" to the right */ .next { right: 0; border-radius: 3px 0 0 3px; } /* On hover, add a grey background color */ .prev:hover, .next:hover { background-color: #f1f1f1; color: black; } </style> </head> <body> <h2 style="text-align:center">Welcome to Workincode.in</h2> <div class="slideshow-container"> <div class="mySlides1"> <img src="wc.png" style="width:100%;height:450px"> </div> <div class="mySlides1"> <img src="wc2.png" style="width:100%;height:450px"> </div> <div class="mySlides1"> <img src="wc3.png" style="width:100%;height:450px"> </div> <a class="prev" onclick="plusSlides(-1, 0)">❮</a> <a class="next" onclick="plusSlides(1, 0)">❯</a> </div> <script> let slideIndex = [1,1]; let slideId = ["mySlides1", "mySlides2"] showSlides(1, 0); showSlides(1, 1); function plusSlides(n, no) { showSlides(slideIndex[no] += n, no); } function showSlides(n, no) { let i; let x = document.getElementsByClassName(slideId[no]); if (n > x.length) {slideIndex[no] = 1} if (n < 1) {slideIndex[no] = x.length} for (i = 0; i < x.length; i++) { x[i].style.display = "none"; } x[slideIndex[no]-1].style.display = "block"; } </script> </body> </html>
Widget 1 : Code
HTML:
<br> <br> <div class=box style="float: right;"> <br> <br> <h2 class="ng-binding" style=" text-align: center;background-color: #333579; color:white; ">Request Something</h2> </div> <br> <br>
Common CSS for all boxes:
div{
height: 150px;
width: 252px;
background: #fff;
border-radius: 20px;
}
.box{
box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
background-color: #333579;
}
Widget Box: 2
HTML
<br>
<br>
<div class=box style="margin-left: 80px;">
<br> <br>
<h2 class="ng-binding" style="
text-align: center;background-color: #333579; color:white;
">Get Help</h2>
</div>
<br>
<br>
Widget Box: 3
HTML
<br> <br> <div class=box> <br> <br> <h2 class="ng-binding" style=" text-align: center; color:white; ">Knowledge Base</h2> </div> <br> <br>
Widget:
<br> <br> <div style=" width: 90%; margin-left: 60px;"> <div class="box" style=" text-align: center; height: 63px; color: white; padding: 10px; font-size: 26px; font-weight: 500; "> My Open Tickets </div> <div> <div><label>Search</label><input type="text" ng-model="searchText" class="form-control"></div> <table style="width: 100%;"> <tr><th><button ng-click="changesort('number')">Number</button></th> <th><button ng-click="changesort('short_description')">Short Description</button></th> <th><button ng-click="changesort('sys_updated_on')">Date</button></th> </tr> <tr ng-repeat="incident in data.incidents | orderBy:orderField | filter:searchText"> <td> {{incident.number}} </td> <td> {{incident.short_description}} </td> <td> {{incident.sys_updated_on}} </td> </tr> </table> </div> <div> <br> <br>
CSS:
div{
height: 100px;
width: 100%;
background: #fff;
border-radius: 20px;
}
.box{
box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
background-color: #333579;
}
button
{box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
background-color: #333579;
color:white;
border-radius: 7px;
}
td, th {
border: 1px solid #ffffff;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #333579;
color:white;
}
.v854bc0c4474031101438690cd36d433c div {
height: 10rem;
width: 100%;
background: none!important;
border-radius: 2rem;
}
.v854bc0c4474031101438690cd36d433c div {
height: 5rem;}
Server Script:
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
data.incidents=[];
var gr=new GlideRecord("incident");
gr.addActiveQuery();
gr.setLimit(10);
gr.orderByDesc("sys_updated_on");
gr.query()
while(gr.next())
{
var incident={};
incident.number=gr.getDisplayValue('number');
incident.short_description=gr.getDisplayValue('short_description');
incident.sys_id=gr.getUniqueValue();
incident.sys_updated_on=gr.getValue('sys_updated_on');
data.incidents.push(incident);
}
})();
Client Controller:
function($scope, spUtil) {
/* widget controller */
var c = this;
$scope.orderField="number";
$scope.changesort=function(field){
$scope.orderField=field;
spUtil.recordWatch($scope,"incident","", function(name,data){
spUtil.update($scope);
});
};
}