瀏覽代碼

[core] Skip quick start wizard checkbox for admins

Requires availability on / because checking happens on login.
Romain Rigaux 12 年之前
父節點
當前提交
e5ba3b2

+ 22 - 0
apps/about/src/about/templates/admin_wizard.mako

@@ -189,6 +189,22 @@ ${ header.menubar() }
                   </p>
                 </div>
               </div>
+
+              <div class="card card-home card-tab card-tab-bordertop card-listcontent">
+                <h2 class="card-heading simple">${ _('Skip wizard next time') }</h2>
+
+                <div class="card-body">
+                  <p>
+                    <label class="checkbox">
+                      <input id="updateSkipWizard" type="checkbox"
+                             style="margin-right: 10px"
+                             title="${ ('Check to skip this wizard next time.') }"/>
+                    ${ ('Skip the Quick Start Wizard at next login and land directly on the home page.') }
+                    </label>
+                  </p>
+                </div>
+              </div>
+
             </div>
           </div>
 
@@ -345,6 +361,12 @@ $(document).ready(function(){
     });
   });
 
+  $("#updateSkipWizard").prop('checked', $.cookie("hueLandingPage", {path: "/"}) == "home");
+
+  $("#updateSkipWizard").change(function () {
+    $.cookie("hueLandingPage", this.checked ? "home" : "wizard", {path: "/"});
+  });
+
 });
 </script>
 % endif

+ 1 - 1
apps/oozie/src/oozie/views/editor.py

@@ -491,7 +491,7 @@ def edit_coordinator_dataset(request, dataset):
       response['data'] = reverse('oozie:edit_coordinator', kwargs={'coordinator': dataset.coordinator.id}) + "#listDataset"
       request.info(_('Dataset modified'))
       if dataset.start > dataset.coordinator.start:
-        request.error(_('Beware: dataset start date was after the coordinator start date.'))
+        request.warn(_('Beware: dataset start date was after the coordinator start date.'))
     else:
       response['data'] = dataset_form.errors
   else:

+ 4 - 0
desktop/core/src/desktop/middleware.py

@@ -191,8 +191,12 @@ class NotificationMiddleware(object):
     def error(title, detail=None):
       messages.error(request, message(title, detail))
 
+    def warn(title, detail=None):
+      messages.warning(request, message(title, detail))
+
     request.info = info
     request.error = error
+    request.warn = warn
 
 
 class AppSpecificMiddleware(object):

+ 1 - 1
desktop/core/src/desktop/templates/common_footer.mako

@@ -35,7 +35,7 @@ from django.template.defaultfilters import escape, escapejs
       %for message in messages:
         %if message.tags == 'error':
           $(document).trigger('error', '${ escapejs(escape(message)) }');
-        %elif message.tags == 'warn':
+        %elif message.tags == 'warning':
           $(document).trigger('warn', '${ escapejs(escape(message)) }');
         %else:
           $(document).trigger('info', '${ escapejs(escape(message)) }');

+ 28 - 0
desktop/core/src/desktop/tests.py

@@ -87,6 +87,34 @@ def test_home():
 
   assert_equal(200, response.status_code)
 
+def test_skip_wizard():
+  c = make_logged_in_client() # is_superuser
+
+  response = c.get('/', follow=True)
+  assert_true(['admin_wizard.mako' in _template.filename for _template in response.template], [_template.filename for _template in response.template])
+
+  c.cookies['hueLandingPage'] = 'home'
+  response = c.get('/', follow=True)
+  assert_true(['home.mako' in _template.filename for _template in response.template], [_template.filename for _template in response.template])
+
+  c.cookies['hueLandingPage'] = ''
+  response = c.get('/', follow=True)
+  assert_true(['admin_wizard.mako' in _template.filename for _template in response.template], [_template.filename for _template in response.template])
+
+
+  c = make_logged_in_client(username="test_skip_wizard", password="test_skip_wizard", is_superuser=False)
+
+  response = c.get('/', follow=True)
+  assert_true(['home.mako' in _template.filename for _template in response.template], [_template.filename for _template in response.template])
+
+  c.cookies['hueLandingPage'] = 'home'
+  response = c.get('/', follow=True)
+  assert_true(['home.mako' in _template.filename for _template in response.template], [_template.filename for _template in response.template])
+
+  c.cookies['hueLandingPage'] = ''
+  response = c.get('/', follow=True)
+  assert_true(['home.mako' in _template.filename for _template in response.template], [_template.filename for _template in response.template])
+
 def test_log_view():
   c = make_logged_in_client()
 

+ 1 - 1
desktop/core/src/desktop/views.py

@@ -379,7 +379,7 @@ def jasmine(request):
   return render('jasmine.mako', request, None)
 
 def index(request):
-  if request.user.is_superuser:
+  if request.user.is_superuser and request.COOKIES.get('hueLandingPage') != 'home':
     return redirect(reverse('about:index'))
   else:
     return home(request)