Merge: modelize_class: Remove an unnecessary pre-condition
[nit.git] / share / nitweb / views / class.html
index ac7c432..ec8ffee 100644 (file)
-<div class='container-fluid'>
-       <div class='page-header'>
-               <h2><entity-signature mentity='mentity.intro'/></h2>
-               <entity-link mentity='mentity.mpackage' /> :: {{mentity.name}}
-       </div>
+<ul class='nav nav-tabs'>
+       <li role='presentation' class='active'>
+               <a data-toggle='tab' data-target='#doc'>
+                       <span class='glyphicon glyphicon-book'/> Doc
+               </a>
+       </li>
+       <li role='presentation'>
+               <a data-toggle='tab' data-target='#graph' ng-click="entityCtrl.loadEntityGraph()">
+                       <span class='glyphicon glyphicon-object-align-vertical'/> Inheritance
+               </a>
+       </li>
+       <li role='presentation'>
+               <a data-toggle='tab' data-target='#all_props'>
+                       <span class='glyphicon glyphicon-tags'/> All properties
+               </a>
+       </li>
+       <li role='presentation'>
+               <a data-toggle='tab' role='tab' data-target='#linearization' aria-controls='linearization' ng-click='entityCtrl.loadEntityLinearization()'>
+                       <span class='glyphicon glyphicon-arrow-down'/> Linearization
+               </a>
+       </li>
+       <li role='presentation'>
+               <a data-toggle='tab' role='tab' data-target='#metrics' aria-controls='metrics' ng-click='entityCtrl.loadStructuralMetrics(); entityCtrl.loadPieChart()'>
+                       <span class='glyphicon glyphicon-stats'/> Metrics
+               </a>
+       </li>
+</ul>
+
+<div class='tab-content'>
+       <div role='tabpanel' class='tab-pane fade in active' id='doc'>
+               <entity-doc mentity='mentity'/>
+
+               <entity-list list-title='Parents'
+                       list-entities='mentity.parents'
+                       list-object-filter='{}' />
 
-       <ul class='nav nav-tabs'>
-               <li class='active'>
-                       <a data-toggle='tab' data-target='#doc'>
-                               <span class='glyphicon glyphicon-book'/> Doc
-                       </a>
-               </li>
-       </ul>
+               <entity-list list-title='Constructors'
+                       list-entities='mentity.all_mproperties'
+                       list-object-filter='{is_init: true}' />
 
-       <div class='tab-content'>
-               <div class='tab-pane fade in active' id='doc'>
-                       <entity-doc mentity='mentity.intro'/>
+               <entity-list list-title='Introduced properties'
+                       list-entities='mentity.intro_mproperties'
+                       list-object-filter='{is_init: "!true"}' />
+
+               <entity-list list-title='Redefined properties'
+                       list-entities='mentity.redef_mproperties'
+                       list-object-filter='{is_init: "!true"}' />
+       </div>
+       <div role='tabpanel' class='tab-pane fade' id='all_props'>
+               <entity-list list-title='All properties' list-entities='mentity.all_mproperties'
+                       list-object-filter='{}' />
+       </div>
+       <div role='tabpanel' class='tab-pane fade' id='linearization'>
+               <entity-linearization
+                       list-title='Class definitions'
+                       list-entities='linearization'
+                       list-focus='mentity.intro' />
+       </div>
+       <div role='tabpanel' class='tab-pane fade' id='graph'>
+               <div class='card'>
+                       <div class='card-body text-center'>
+                               <div class='graph' ng-bind-html='graph'></div>
+                       </div>
+               </div>
+       </div>
+       <div role='tabpanel' class='tab-pane fade' id='metrics'>
+               <div class='card'>
+                       <div class='card-heading'>
+                               <h3 class='card-title'>Class inheritance</h3>
+                       </div>
+                       <div class='card-body container-fluid'>
+                               <div class='col-sm-6'>
+                                       <h4>
+                                               Inheritance kind
+                                               <small>({{metrics.mclass['cnoa'].values[mentity.full_name].value}}
+                                               ancestors)</small>
+                                       </h4>
+                                       <chart-class-inheritance-kind chart-id='chartInheritanceKind'
+                                               chart-metrics='metrics.mclass' />
+                               </div>
+                               <div class='col-sm-6'>
+                                       <h4>
+                                               Inheritance metrics
+                                       </h4>
+                                       <dl class='dl-horizontal'>
+                                               <dt>{{metrics.mclass.cnoa.values[mentity.full_name].value}}</dt>
+                                               <dd>ancestors</dd>
+                                               <dt>{{metrics.mclass.cnop.values[mentity.full_name].value}}</dt>
+                                               <dd>direct parents</dd>
+                                               <dt>{{metrics.mclass.cnoc.values[mentity.full_name].value}}</dt>
+                                               <dd>direct children</dd>
+                                               <dt>{{metrics.mclass.cnod.values[mentity.full_name].value}}</dt>
+                                               <dd>descendants</dd>
+                                       </dl>
+                                       <dl class='dl-horizontal'>
+                                               <dt>{{metrics.mclass.cdit.values[mentity.full_name].value}}</dt>
+                                               <dd>Depth in Inheritance Tree</dd>
+                                       </dl>
+                               </div>
+                       </div>
+               </div>
+               <div class='card'>
+                       <div class='card-heading'>
+                               <h3 class='card-title'>Class properties</h3>
+                       </div>
+                       <div class='card-body container-fluid'>
+                               <div class='col-sm-6'>
+                                       <h4>
+                                               Properties kind
+                                               <small>({{metrics.mclass['cnbp'].values[mentity.full_name].value}}
+                                               accessible properties)</small>
+                                       </h4>
+                                       <chart-class-properties-kind chart-id='chartPropertiesKind'
+                                               chart-metrics='metrics.mclass' />
+                               </div>
+                               <div class='col-sm-6'>
+                                       <h4>
+                                               Properties inheritance
+                                               <small>({{metrics.mclass['cnbp'].values[mentity.full_name].value}}
+                                               accessible properties)</small>
+                                       </h4>
+                                       <chart-class-properties-inh chart-id='chartPropertiesInh'
+                                               chart-metrics='metrics.mclass' />
+                               </div>
+                       </div>
                </div>
        </div>
 </div>