UNPKG

sams-webapp

Version:
211 lines (202 loc) 8.21 kB
<div class="panel panel-default"> <div class="panel-body"> <ng-include src="'templates/partials/options.popup.html'" class="no-printable"></ng-include> <!--Breadcrumb, step 4 --> <nav class="no-printable"> <ol class="cd-multi-steps text-top"> <li class="visited"><em>{{ 'BREADCRUMB_REQUIREMENTS' | translate }}</em></li> <li class="visited"><em>{{ 'BREADCRUMB_POLICIES' | translate }}</em></li> <li class="current"><em>{{ 'BREADCRUMB_RESOLUTION' | translate }}</em></li> </ol> </nav> <!-- /breacrumbs --> <!-- Back-Forward buttons --> <div class="row no-printable"> <div class="col-sm-6"> <a class="btn btn-primary btn pull-right" ui-sref="step.policies"><span class="glyphicon glyphicon-chevron-left"></span></a> </div> <div class="col-sm-6"> <button class="btn btn-primary btn" ng-click="showSolve=!showSolve"><span class="glyphicon glyphicon-cog"></span> {{showSolve ? "Back to Resolution" : "Show Solution"}} </button> </div> </div> <!-- /Back-Forward buttons --> <div class="row"> <!-- Rendered User Solution Table --> <div class="col-sm-12" ng-hide="showSolve"> <!-- results memory--> <table class="center-table printable"> <thead> <!-- render nº instant--> <tr> <td class="rtable rtable-default">Instant #</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default" ng-repeat="instant in [0, instants] | makeRange">{{instant}}</td> </tr> <!-- specify the required page for the instant--> <tr> <td class="rtable rtable-default">Requirement</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default" ng-repeat="p in userSolution"> <span class="text-primary">{{ p.requirement.mode == 'read' ? p.requirement.process + p.requirement.pageNumber + ' R' : ''}}</span> <span class="text-default">{{ p.requirement.mode == 'write' ? p.requirement.process + p.requirement.pageNumber + ' W' : ''}}</span> <span class="text-success">{{ p.requirement.mode == 'finish' ? p.requirement.process + ' F' : '' }}</span> </td> </tr> </thead> <tbody> <!-- render nº frames--> <tr ng-repeat="n in [0, framesTotal] | makeRange"> <td class="rtable rtable-frame">Frame {{n}}</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-frame" ng-repeat="p in userSolution" ng-dblclick="showOptions(n,$index)" ng-class="frameClassFor(p.frames[n])" contenteditable="true" strip-br="true" ng-model="inputMatrix[$index][n]" ng-change="changeFrame(n,$index)"> <!-- {{(p.frames[n].reservedForPageBuffering || p.frames[n].finished) ? '' : (p.frames[n].process + p.frames[n].pageNumber)}} --> {{ inputMatrix[$index][n] }} </td> </tr> </tbody> </table> <button class="btn btn-primary btn pull-left no-printable" ng-click="print()"><span class="glyphicon glyphicon-print"></span> Print</button> <button class="btn btn-success btn pull-right no-printable" ng-click="checkSolution()"> Check solution <span class="glyphicon glyphicon-ok"></span></button> </div> <!-- /Rendered User Solution Table --> <!-- Rendered Table --> <div class="col-sm-12" ng-show="showSolve"> <!-- results memory--> <table class="center-table"> <thead> <!-- render nº instant--> <tr> <td class="rtable rtable-default">Instant #</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default" ng-repeat="instant in [0, instants] | makeRange">{{instant}}</td> </tr> <!-- specify the required page for the instant--> <tr> <td class="rtable rtable-default">Requirement</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default" ng-repeat="p in results"> <span class="text-primary">{{ p.requirement.mode == 'read' ? p.requirement.process + p.requirement.pageNumber + ' R' : ''}}</span> <span class="text-default">{{ p.requirement.mode == 'write' ? p.requirement.process + p.requirement.pageNumber + ' W' : ''}}</span> <span class="text-success">{{ p.requirement.mode == 'finish' ? p.requirement.process + ' F' : '' }}</span> </td> </tr> </thead> <tbody> <!-- render nº frames--> <tr ng-repeat="n in [0, framesTotal] | makeRange"> <td class="rtable rtable-frame">Frame {{n}}</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-frame" ng-repeat="p in results" ng-class="frameClassFor(p.frames[n])"> {{(p.frames[n].reservedForPageBuffering || p.frames[n].finished || (p.frames[n].process == "empty")) ? '' : (p.frames[n].process + p.frames[n].pageNumber)}} </td> </tr> <!-- render page faults --> <tr> <td class="rtable rtable-default rtable-pf">PF</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default rtable-pf" ng-repeat="p in results"> {{ p.pageFault ? 'X' : ''}} </td> </tr> <!-- render victim for this instant --> <tr> <td class="rtable rtable-default">Victim</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default" ng-repeat="p in results"> {{ {true: p.victim.process + p.victim.pageNumber, false:''}[p.victim != undefinded] }} </td> </tr> <!-- render victims queue buttons --> <tr> <td class="rtable rtable-default">Victims' Queue</td> <td class="rtable rtable-space"></td> <td class="rtable rtable-default" ng-repeat="(i, p) in results"> <button ng-click="showVictims(i)" type="button" name="button" class="btn btn-info btn-lg"> <span class="glyphicon glyphicon-chevron-down"></span> </button> </td> </tr> </tbody> </table> </div> <!-- /Rendered Table --> <!-- Render victim queue --> <div class="col-xs-offset-1 col-xs-10 no-printable" ng-show="showSolve"> <div class="page-header section-header"> <h4>Victims' Queue</h4> </div> <div class="panel panel-default panel-body grey-color"> <table id="victims-queue"> <tbody> <tr> <td class="rtable rtable-default" ng-repeat="v in victimsQueue"> {{ v.process }}{{v.pageNumber}} </td> </tr> </tbody> </table> </div> </div> <!-- /Render victim queue --> <!-- legend panel --> <div class="col-xs-offset-1 col-xs-10 no-printable"> <div class="page-header section-header"> <h4>Legend</h4> </div> <div class="panel panel-default panel-body grey-color"> <div class="row"> <div class="col-lg-2 col-sm-4 col-xs-12"> <div class="panel panel-default"> <div class="panel-body rtable-legend rtable-frame"> Empty frame, frame with no changes </div> </div> </div> <div class="col-lg-2 col-sm-4 col-xs-12"> <div class="panel panel-default"> <div class="panel-body rtable-legend rtable-newinmemory"> New page in memory </div> </div> </div> <div class="col-lg-2 col-sm-4 col-xs-12"> <div class="panel panel-default"> <div class="panel-body rtable-legend rtable-referenced"> Referenced page </div> </div> </div> <div class="col-lg-2 col-sm-4 col-xs-12"> <div class="panel panel-default"> <div class="panel-body rtable-legend rtable-modified"> Modified page </div> </div> </div> <div class="col-lg-2 col-sm-4 col-xs-12"> <div class="panel panel-default"> <div class="panel-body rtable-legend rtable-async"> Frame reserved for Page Buffering </div> </div> </div> <div class="col-lg-2 col-sm-4 col-xs-12"> <div class="panel panel-default"> <div class="panel-body rtable-legend rtable-finished"> Frame freed from a finished process </div> </div> </div> </div> </div> </div> <!--/legend panel--> </div> </div> </div>