[TIC-Web] refactoring for login module 73/121473/4
authorChangHyun Lee <leechwin.lee@samsung.com>
Tue, 28 Mar 2017 05:58:07 +0000 (14:58 +0900)
committerChangHyun Lee <leechwin.lee@samsung.com>
Tue, 28 Mar 2017 06:06:43 +0000 (15:06 +0900)
- add login.js

Change-Id: I5fb958472e240dfbfbd84128b8871bf202cc60ba
Signed-off-by: ChangHyun Lee <leechwin.lee@samsung.com>
public/src/index.html
public/src/js/config.js
public/src/js/main.js
public/src/js/page/login.js [new file with mode: 0644]
public/src/js/page/package.js

index 618236c..2359486 100644 (file)
                                         </div>
                                         <div class="input-group-btn">
                                             <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                                                <i class="fa fa-navicon"></i>
+                                                <i class="fa fa-filter"></i>
                                             </button>
                                             <ul class="dropdown-menu dropdown-menu-right">
                                                 <li><a href="#" tabIndex="-1"><input type="checkbox" id="tic-package-toolbar-debug"/> Hide Debug Packages</a></li>
index 3726104..65a8f7e 100644 (file)
@@ -20,6 +20,9 @@ require = {
         'bootstrap-validator': {
             deps: ['jquery']
         },
+        'bootstrap-contextmenu': {
+            deps: ['jquery']
+        },
         'jquery-sortable': {
             deps: ['jquery'],
             exports: 'jQuery.fn.sortable'
index 849dd2a..f2b175c 100644 (file)
@@ -3,6 +3,7 @@ define([
     'bootstrap',
     'bootstrap-treeview',
     'js/util',
+    'js/page/login',
     'js/page/package',
     'js/page/settings',
     'js/page/image',
@@ -12,6 +13,7 @@ define([
     bootstrap,
     bootstrapTreeview,
     Util,
+    Login,
     Package,
     Settings,
     Image,
diff --git a/public/src/js/page/login.js b/public/src/js/page/login.js
new file mode 100644 (file)
index 0000000..d174ee2
--- /dev/null
@@ -0,0 +1,146 @@
+define([
+    'jquery',
+    'bootstrap-validator',
+    'js/util',
+    'js/logger'
+], function (
+    $,
+    BootstrapValidator,
+    Util,
+    Logger
+) {
+    'use strict';
+
+    var logger = Logger('login.js');
+
+    /**
+     * listener of input change in login
+     */
+    function _loginFormHandler() {
+        $('#tic-page-login-form-email').on('input change', function(e) {
+            if ($(e.target).hasClass('has-danger') === false) {
+                $('#tic-page-form-help-email').html('');
+            }
+        });
+        $('#tic-page-login-form-password').on('input change', function(e) {
+            if ($(e.target).hasClass('has-danger') === false) {
+                $('#tic-page-form-help-password').html('');
+            }
+        });
+    }
+
+    /**
+     * listener of submit in login
+     */
+    function _loginHandler() {
+        $('#tic-page-login-form').validator().on('submit', function (e) {
+            // prevent for sumbit of form
+            e.preventDefault();
+
+            Util.POST('api/session', {
+                email : $('#tic-page-login-form-email').val(),
+                password: $('#tic-page-login-form-password').val()
+            })
+            .then(function (user) {
+                if (user.result === 'success') {
+                    logger.info('login success');
+                    $('#tic-page-login-dropdown-toggle').dropdown('toggle');
+                    // toggle for login and logout
+                    $('#tic-navbar-login').toggleClass('hidden', true); // hidden
+                    $('#tic-navbar-logout').toggleClass('hidden', false); // visible
+                    $('#tic-page-logout-dropdown-toggle').html(user.data.user_email +'<span class="caret">');
+
+                    updatePermission();
+                } else {
+                    if (user.reason === 'email') {
+                        logger.info('invalid email');
+                        $('#tic-page-form-group-email').addClass('has-error has-danger');
+                        $('#tic-page-form-help-email').html('Invalid email.');
+                    } else if (user.reason === 'password') {
+                        logger.info('invalid password');
+                        $('#tic-page-form-group-password').addClass('has-error has-danger');
+                        $('#tic-page-form-help-password').html('Invalid password.');
+                    }
+                }
+            });
+        });
+    }
+
+    /**
+     * listener of submit in logout
+     */
+    function _logoutHandler() {
+        $('#tic-page-logout-form').on('submit', function (e) {
+            // prevent for sumbit of form
+            e.preventDefault();
+
+            Util.DELETE('api/session')
+            .then(function (result) {
+                if (result.result === 'success') {
+                    logger.info('logout success');
+                    $('#tic-page-logout-dropdown-toggle').dropdown('toggle');
+                    // toggle for logout and login
+                    $('#tic-navbar-login').toggleClass('hidden', false); // visible
+                    $('#tic-navbar-logout').toggleClass('hidden', true); // hidden
+                    $('#tic-page-logout-dropdown-toggle').html('');
+                }
+                updatePermission();
+            });
+        });
+    }
+
+    /**
+     * Permission control in login
+     */
+    function _updateLogin(user) {
+        if (user.group !== 'GUEST') {
+            $('#tic-navbar-login').toggleClass('hidden', true); // hidden
+            $('#tic-navbar-logout').toggleClass('hidden', false); // visible
+            $('#tic-page-logout-dropdown-toggle').html(user.email +'<span class="caret">');
+        }
+    }
+
+    /**
+     * Permission control in packages page
+     */
+    function _updatePackagePage(group) {
+        // Image Creation Button
+        if (group === 'GUEST') {
+            $('#tic-package-create').toggleClass('hidden', true);
+        } else {
+            $('#tic-package-create').toggleClass('hidden', false);
+        }
+    }
+
+    /**
+     * Permission control of group
+     */
+    function updatePermission() {
+        Util.GET('api/session')
+        .then(function (user) {
+            _updateLogin(user);
+            _updatePackagePage(user.group);
+        });
+    }
+
+    function init() {
+        logger.info('init');
+
+        _loginFormHandler();
+        _loginHandler();
+        _logoutHandler();
+
+        updatePermission();
+    }
+
+    init();
+
+    return {
+        /**
+         * Update control state by permission
+         * @method updatePermission
+         */
+        updatePermission: updatePermission
+    }
+
+});
index 831ece7..58d440e 100644 (file)
@@ -1242,97 +1242,6 @@ define([
         Util.getAppConfig().then(function (data) {
             AppConfig = data;
         });
-
-        // login: listener of input change
-        $('#tic-page-login-form-email').on('input change', function(e) {
-            if ($(e.target).hasClass('has-danger') === false) {
-                $('#tic-page-form-help-email').html('');
-            }
-        });
-        $('#tic-page-login-form-password').on('input change', function(e) {
-            if ($(e.target).hasClass('has-danger') === false) {
-                $('#tic-page-form-help-password').html('');
-            }
-        });
-        // login: listener of submit
-        $('#tic-page-login-form').validator().on('submit', function (e) {
-            // prevent for sumbit of form
-            e.preventDefault();
-
-            Util.POST('api/session', {
-                email : $('#tic-page-login-form-email').val(),
-                password: $('#tic-page-login-form-password').val()
-            })
-            .then(function (user) {
-                if (user.result === 'success') {
-                    logger.info('login success');
-                    $('#tic-page-login-dropdown-toggle').dropdown('toggle');
-                    // toggle for login and logout
-                    $('#tic-navbar-login').toggleClass('hidden', true); // hidden
-                    $('#tic-navbar-logout').toggleClass('hidden', false); // visible
-                    $('#tic-page-logout-dropdown-toggle').html(user.data.user_email +'<span class="caret">');
-
-                    updatePermission();
-                } else {
-                    if (user.reason === 'email') {
-                        logger.info('invalid email');
-                        $('#tic-page-form-group-email').addClass('has-error has-danger');
-                        $('#tic-page-form-help-email').html('Invalid email.');
-                    } else if (user.reason === 'password') {
-                        logger.info('invalid password');
-                        $('#tic-page-form-group-password').addClass('has-error has-danger');
-                        $('#tic-page-form-help-password').html('Invalid password.');
-                    }
-                }
-            });
-        });
-
-        // logout: listener of submit
-        $('#tic-page-logout-form').on('submit', function (e) {
-            // prevent for sumbit of form
-            e.preventDefault();
-
-            Util.DELETE('api/session')
-            .then(function (result) {
-                if (result.result === 'success') {
-                    logger.info('logout success');
-                    $('#tic-page-logout-dropdown-toggle').dropdown('toggle');
-                    // toggle for logout and login
-                    $('#tic-navbar-login').toggleClass('hidden', false); // visible
-                    $('#tic-navbar-logout').toggleClass('hidden', true); // hidden
-                    $('#tic-page-logout-dropdown-toggle').html('');
-                }
-                updatePermission();
-            });
-        });
-
-        function initSession() {
-            Util.GET('api/session')
-            .then(function (user) {
-                if (user.group !== 'GUEST') {
-                    $('#tic-navbar-login').toggleClass('hidden', true); // hidden
-                    $('#tic-navbar-logout').toggleClass('hidden', false); // visible
-                    $('#tic-page-logout-dropdown-toggle').html(user.email +'<span class="caret">');
-                }
-                updatePermission();
-            });
-        }
-
-        initSession();
-    }
-
-    function updatePermission() {
-        // TODO: add permission control of group
-        Util.GET('api/session')
-        .then(function (user) {
-            if (user.group === 'ADMIN') {
-                $('#tic-package-create').toggleClass('hidden', false);
-            } else if (user.group === 'MASTER') {
-                $('#tic-package-create').toggleClass('hidden', false);
-            } else { // 'GUEST'
-                $('#tic-package-create').toggleClass('hidden', true);
-            }
-        });
     }
 
     init();