Pārlūkot izejas kodu

[notebook] Gracefully fail when no snippets are configured

Enrico Berti 10 gadi atpakaļ
vecāks
revīzija
c5a9cd373c

+ 1 - 1
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -636,7 +636,7 @@ var Notebook = function (vm, notebook) {
   self.name = ko.observable(typeof notebook.name != "undefined" && notebook.name != null ? notebook.name : 'My Notebook');
   self.description = ko.observable(typeof notebook.description != "undefined" && notebook.description != null ? notebook.description: '');
   self.snippets = ko.observableArray();
-  self.selectedSnippet = ko.observable(vm.availableSnippets()[0].type());
+  self.selectedSnippet = ko.observable(vm.availableSnippets().length > 0 ? vm.availableSnippets()[0].type() : "NO_SNIPPETS");
   self.creatingSessionLocks = ko.observableArray();
   self.sessions = ko.mapping.fromJS(typeof notebook.sessions != "undefined" && notebook.sessions != null ? notebook.sessions : [], {
     create: function(value) {

+ 4 - 0
desktop/libs/notebook/src/notebook/templates/notebook.mako

@@ -35,6 +35,9 @@ ${ commonheader(_('Notebook'), app_name, user, "68px") | n,unicode }
 ${ editorComponents.includes() }
 <%editorComponents:commonHTML>
   <%def name="addSnippetHTML()">
+    <h1 class="empty" data-bind="visible: $root.availableSnippets().length == 0">${ _('There are no snippets configured.') }</h1>
+
+    <!-- ko if: $root.availableSnippets().length > 0 -->
     <h1 class="empty" data-bind="visible: snippets().length == 0">${ _('Add a snippet to start your new notebook') }</h1>
 
     <div class="add-snippet">
@@ -42,6 +45,7 @@ ${ editorComponents.includes() }
         <i class="add-last-used-snippet fa fa-plus-circle fa-5x" title="${ _('Add a new snippet') }"></i>
       </div>
     </div>
+    <!-- /ko -->
   </%def>
 </%editorComponents:commonHTML>