<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<div ng-controller="HomeCtrl as home">
  <div class="row">
    <div class="col-md-4">
      <h4>Notebook
        <i ng-class="isReloadingNotes ? 'fa fa-refresh fa-spin' : 'fa fa-refresh'"
           ng-style="!isReloadingNotes && {'cursor': 'pointer'}" style="font-size: 13px;"
           ng-click="reloadNoteList();"
           tooltip-placement="bottom" uib-tooltip="Reload notes from storage">
         </i>
      </h4>
        <h5><a href="" data-toggle="modal" data-target="#noteImportModal" style="text-decoration: none;">
           <i style="font-size: 15px;" class="fa fa-upload"></i> Import note</a></h5>
         <h5 ng-controller="NoteCreateCtrl as noteCreateCtrl"><a href="" data-toggle="modal" data-target="#noteCreateModal" style="text-decoration: none;" ng-click="noteCreateCtrl.getInterpreterSettings();">
           <i style="font-size: 15px;" class="icon-notebook"></i> Create new note</a></h5>
       <ul id="notebook-names">
         <li class="filter-names" ng-include="'components/note-name-filter/note-name-filter.html'"></li>
         <div ng-if="!query.q || query.q === ''" infinite-scroll="loadMoreNotes()">
           <li ng-repeat="node in home.notes.root.children | limitTo:home.numberOfNotesDisplayed track by $index"
               ng-include src="'app/home/notebook-template.html'" ng-class="note_folder_renderer"></li>
         </div>
         <div ng-if="query.q" infinite-scroll="loadMoreNotes()">
           <li ng-repeat="node in home.notes.flatList | filter:query.q | orderBy:home.arrayOrderingSrv.noteFlatListOrdering | limitTo:home.numberOfNotesDisplayed track by $index"
               ng-include src="'app/home/notebook-template.html'" ng-class="note_folder_renderer"></li>
         </div>
       </ul>
    </div>
    <br/><br/><br/>
  </div>
</div>
