[Title] Fixed bug about process Signup page, Delete user, Job page group filterling.
authordibs <dibs@samsung.com>
Fri, 14 Dec 2012 02:27:55 +0000 (11:27 +0900)
committerdibs <dibs@samsung.com>
Fri, 14 Dec 2012 02:27:55 +0000 (11:27 +0900)
dibs-web/app/controllers/admin_group_controller.rb
dibs-web/app/controllers/admin_user_controller.rb
dibs-web/app/controllers/jobs_controller.rb
dibs-web/app/controllers/sessions_controller.rb
dibs-web/app/controllers/users_controller.rb
dibs-web/config/database.yml
dibs-web/public/index.html
dibs-web/public/javascripts/jobs.js
dibs-web/public/javascripts/main.js
dibs-web/public/javascripts/session.js
dibs-web/public/javascripts/user.js

index 633c815fba1452643c3c36bd2811f3558d6c5aa9..352cf45906720e5ca8322c589bde54918d922313 100644 (file)
@@ -1,6 +1,7 @@
 class AdminGroupController < ApplicationController
 
        before_filter :check_login_status, :check_admin_group
+       skip_before_filter :check_admin_group, :only => [:queryAllGroup]
 
        def queryAllGroup
                project_list = Project.all(:order => "name")
index c79f8e1ebb47bc0d266e791a6e4075a588eb02e0..d088373ff42a6f7b76676dd15c91c36d2dbde213 100644 (file)
@@ -102,6 +102,8 @@ class AdminUserController < ApplicationController
                        errmsg = "Can't find user information"
                        render :text => errmsg, :status => 406
                else
+                       UserGroup.delete_all(["user_id = ?", user.id])
+
                        user.destroy
                        render :json => { :success => "OK!" }
                end
index 943db2a29877f10051cfb01af321a19ab47e0e08..71f6ae98163f495f8dc8141e772b0cb7b88d5f3c 100644 (file)
@@ -2,7 +2,7 @@ class JobsController < ApplicationController
 
        before_filter :check_login_status
 
-       Query_cnt = 30
+       QUERY_CNT = 30
 
        def list
        end
@@ -39,7 +39,7 @@ class JobsController < ApplicationController
                end
 
                if(last_id == "LATEST")
-                       last_job_id = Job.maximum("id")
+                       last_job_id = Job.maximum(:id)
                        if last_job_id.nil?
                                last_job_id = 0
                        end
@@ -51,8 +51,6 @@ class JobsController < ApplicationController
 
                date = date + "%"
 
-               first_job_id = last_job_id - Query_cnt
-
                jobs = Job.find_by_sql("SELECT jobs.id
                                                                         , CASE WHEN jobs.jtype like 'MULTI%' THEN 'MULTI'
                                                                                         ELSE 'SINGLE' END AS job_attribute
@@ -69,13 +67,14 @@ class JobsController < ApplicationController
                                                                   ON jobs.remote_build_server_id = remote_build_servers.id
                                                                 LEFT JOIN sources
                                                                   ON jobs.source_id = sources.id
-                                                         WHERE jobs.id > #{first_job_id} AND jobs.id <= #{last_job_id}
+                                                         WHERE jobs.id <= #{last_job_id}
                                                                AND jobs.parent_job_id IS NULL
                                                                AND jobs.status in (#{status})
                                                                AND users.name like '#{user}'
                                                                AND distributions.name like '#{distribution}'
                                                                AND DATE(jobs.start_time) like '#{date}'
-                                                         ORDER BY jobs.id DESC")
+                                                         ORDER BY jobs.id DESC
+                                                         LIMIT #{QUERY_CNT}")
 
                #generate to XML
                doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
@@ -151,14 +150,12 @@ class JobsController < ApplicationController
 
                group = group + "%"
 
-               first_job_id = last_job_id - Query_cnt
-
                jobs = Job.find_by_sql("SELECT jobs.id
                                                                         , CASE WHEN jobs.jtype like 'MULTI%' THEN 'MULTI'
                                                                                         ELSE 'SINGLE' END AS job_attribute
                                                                 FROM jobs 
                                                                 LEFT JOIN distributions ON jobs.distribution_id = distributions.id 
-                                                                 WHERE jobs.id > #{first_job_id} AND jobs.id <= #{last_job_id}
+                                                                 WHERE jobs.id <= #{last_job_id}
                                                                        AND jobs.parent_job_id IS NULL
                                                                        AND distributions.name like '#{distribution}'
                                                                        AND jobs.status in (#{status})
@@ -167,7 +164,8 @@ class JobsController < ApplicationController
                                                                                                                  LEFT JOIN user_groups ON user_groups.user_id = users.id
                                                                                                                  LEFT JOIN groups ON groups.id = user_groups.group_id
                                                                                                                 WHERE groups.name LIKE '#{group}')
-                                                                 ORDER BY jobs.id DESC")
+                                                                 ORDER BY jobs.id DESC
+                                                                 LIMIT #{QUERY_CNT}")
 
                #generate to XML
                doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
@@ -243,8 +241,6 @@ class JobsController < ApplicationController
 
                project = project + "%"
 
-               first_job_id = last_job_id - Query_cnt
-               
                jobs = Job.find_by_sql("SELECT jobs.id
                                                                         , CASE WHEN jobs.jtype like \"MULTI%\" THEN \"MULTI\"
                                                                                         ELSE \"SINGLE\" END \"job_attribute\"
@@ -261,10 +257,11 @@ class JobsController < ApplicationController
                                                                   ON jobs.remote_build_server_id = remote_build_servers.id
                                                                 LEFT JOIN sources
                                                                   ON jobs.source_id = sources.id
-                                                         WHERE jobs.id > #{first_job_id} AND jobs.id <= #{last_job_id}
+                                                         WHERE jobs.id <= #{last_job_id}
                                                                AND jobs.status IN (#{status})
                                                                AND projects.name like '#{project}'
-                                                         ORDER BY jobs.id DESC")
+                                                         ORDER BY jobs.id DESC
+                                                         LIMIT #{QUERY_CNT}")
 
                #generate to XML
                doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
@@ -372,7 +369,7 @@ class JobsController < ApplicationController
                @cursor = nil
                @file = nil
        
-               line_cnt = 99
+               line_cnt = 999
                conti= 1
                id = params[:id]
                puts id
index 308f740f7418c92dc85d3d37e1cc534d16bd8e71..2dcf20bc98c9fb9ade2284b49e18fbbc4aaeef1c 100644 (file)
@@ -6,7 +6,11 @@ class SessionsController < ApplicationController
                input_list = params[:ChangeInfoList]
                input_item = input_list[0]
 
-               user = User.authenticate(input_item[:Email], input_item[:Password])
+               create_session(input_item[:Email], input_item[:Password])
+       end
+
+       def create_session(email, password)
+               user = User.authenticate(email, password)
 
                if user
                        group_list = get_group_list(user.email)
@@ -34,8 +38,7 @@ class SessionsController < ApplicationController
                else
                        render :json => { :Result => 'ERROR', :UserInfo => {:Message => 'Fail login'} }
                end
-
-
+               return
        end
 
        def logout
index aec71415b9790538449fb0714cf4125a376eda56..a096e00d41f31dcae6a557a42c25c444b8de8a41 100644 (file)
@@ -25,12 +25,44 @@ class UsersController < ApplicationController
                @user.password_confirmation = change_item[:PasswordConfirm]
 
                if @user.save
-                       render :json => { :success => "Welcome!" }
+                       create_session(@user.email, @user.password)
                else
                        render :json => { :error => "Error"}, :status => 406
                end
 
        end
+
+       def create_session(email, password)
+               user = User.authenticate(email, password)
+
+               if user
+                       group_list = get_group_list(user.email)
+                       if is_admin(user.email)
+                               admin = "TRUE"
+                       else
+                               admin = "FALSE"
+                       end
+
+                       session[:user_email] = user.email
+                       user_info = { :Message => 'Welcome!', 
+                                                       :Eamil => user.email, 
+                                                       :Name => user.name, 
+                                                       :Admin => admin,
+                                                 }
+                       group_info = nil
+                       group_list.map { |group|
+                               group_info = {:Group => [:GroupName => group.name, 
+                                                               :GroupAdmin => group.admin, 
+                                                               :GroupDescription => group.description] }
+                       }
+
+                       render :json => { :Result => 'SUCCESS', :UserInfo => user_info, :GroupInfo => group_info}
+                       puts user_info
+               else
+                       render :json => { :Result => 'ERROR', :UserInfo => {:Message => 'Fail login'} }
+               end
+               return
+       end
        
        def show 
                email = get_user_email
index bac51a20b556b8c5106d5900416bb118a586535a..a5cb84b6e1e8eea5cfbf67cfb3ce75e01b548bff 100644 (file)
  development:
    adapter: mysql2
    encoding: utf8
-   host: 172.21.111.131
-   port: 3306
-   database: dibs
-   username: root
-   password: sua1004
+   host: 
+   port:
+   database:
+   username:
+   password:
    pool: 5
    timeout: 5000
index 8b72caded445c1cfef504e238e7d5f1f082daf5d..28b4651d3f8f7fe8c15de6494330bdf1a897bbc2 100644 (file)
 
                <div data-role="content" >
                        <div class="content-primary" >
-                               <h2>Build</h2>
+                               <h2>Project information</h2>
                                <div>
                                        <div data-role="fieldcontain" style="text-align: center; font-size: 14px;">
                                                <select id="adminProjectDistributionSelect" data-native-menu="false" onchange="adminProjectSetProjectInfo()">
index eb0dda59d6a260bd99ecec50cd06b8dd47e646e7..20753b39ecfa7f1fac820f0935254a4881d0ff07 100644 (file)
@@ -90,12 +90,16 @@ function jobsStatusSelected() {
 
 function searchJobInput() {
        var searchText = $("#jobSearchInputText").val()
-       searchJob(searchText);
+       if(searchText.length > 0) {
+               searchJob(searchText);
+       }
 }
 
 function searchJobDate() {
        var searchText = $("#jobSearchDate").val()
-       searchJob(searchText);
+       if(searchText.length > 0) {
+               searchJob(searchText);
+       }
 }
 
 function searchJob(searchText) {
index 39c64b7b1fa1670d75955c5ade1bc61e67a460d7..80679cba48e81cbc92bb378c3ac45b0ec7da8256 100644 (file)
@@ -177,9 +177,28 @@ function generateNavigationBar(id) {
 function generateNavigationBarUser(id) {
        var naviHtml = ""
        naviHtml = '<li data-role="list-divider">BUILD</li>';
-       naviHtml += '<li><a href="#projects">Projects</a></li>';
-       naviHtml += '<li><a href="#build">Build</a></li>';
-       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+       switch(id){
+               case "projects":
+                       naviHtml += '<li data-theme="b" ><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       break;
+               case "build":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li data-theme="b"><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       break;
+               case "jobs":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li data-theme="b"><a href="#jobs">Jobs</a></li>';
+                       break;
+               default:
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       break;
+       }
 
        $("#"+id+"-navigationBar").empty();
        $("#"+id+"-navigationBar").append(naviHtml).listview("refresh");
@@ -188,15 +207,107 @@ function generateNavigationBarUser(id) {
 function generateNavigationBarAdmin(id) {
        var naviHtml = ""
        naviHtml = '<li data-role="list-divider">BUILD</li>';
-       naviHtml += '<li><a href="#projects">Projects</a></li>';
-       naviHtml += '<li><a href="#build">Build</a></li>';
-       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
-       naviHtml += '<li data-role="list-divider">ADMIN</li>';
-       naviHtml += '<li><a href="#adminUser">User</a></li>';
-       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
-       naviHtml += '<li><a href="#adminServer">Server</a></li>';
-       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
-       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+       switch(id){
+               case "projects":
+                       naviHtml += '<li data-theme="b" ><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "build":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li data-theme="b" ><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "jobs":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li data-theme="b" ><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "adminUser":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li data-theme="b" ><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "adminGroup":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li data-theme="b" ><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "adminServer":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li data-theme="b" ><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "adminDistribution":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li data-theme="b" ><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+               case "adminProject":
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li data-theme="b" ><a href="#adminProject">Project</a></li>';
+                       break;
+               default:
+                       naviHtml += '<li><a href="#projects">Projects</a></li>';
+                       naviHtml += '<li><a href="#build">Build</a></li>';
+                       naviHtml += '<li><a href="#jobs">Jobs</a></li>';
+                       naviHtml += '<li data-role="list-divider">ADMIN</li>';
+                       naviHtml += '<li><a href="#adminUser">User</a></li>';
+                       naviHtml += '<li><a href="#adminGroup">Group</a></li>';
+                       naviHtml += '<li><a href="#adminServer">Server</a></li>';
+                       naviHtml += '<li><a href="#adminDistribution">Distribution</a></li>';
+                       naviHtml += '<li><a href="#adminProject">Project</a></li>';
+                       break;
+       }
 
        $("#"+id+"-navigationBar").empty();
        $("#"+id+"-navigationBar").append(naviHtml).listview("refresh");
index 92c94f5df9742c1af2afdbc29b99545d175a2ae3..dc5ebb8cdc76f6c39abbdd2eef7e2c616dd237e3 100644 (file)
@@ -4,12 +4,6 @@ $(function() {
                        sessionLogin();
                }
        });
-
-       $('#user-password-confirmation').keypress(function() {
-               if(event.keyCode == '13') {
-                       userSignUp();
-               }
-       });
 });
 
 function setSessionInfo(xml){
index a0165cfb6347eb6572e15b66ee1bd90a7319a8d4..0c1366f56a83bb4442f5228ad0ff2b11970e16a9 100644 (file)
@@ -1,3 +1,11 @@
+$(function() {
+       $('#user-password-confirmation').keypress(function() {
+               if(event.keyCode == '13') {
+                       userSignUp();
+               }
+       });
+});
+
 function userSignUp() {
        var infoList = [];
        var infoItem;
@@ -28,8 +36,28 @@ function userSignUp() {
        changeInfoItem = {"Type":"ModifyUser", "Email":email, "Name":name, "Password":password, "PasswordConfirm":password_confirm};
        infoList.push(changeInfoItem);
 
-       signUp(infoList, function (xml) {
+       signUp(infoList, function (json) {
                alert("Success sign up");
+
+               var result = json.Result;
+               var message = json.UserInfo.Message;
+               var email = json.UserInfo.Eamil;
+               var name = json.UserInfo.Name;
+               var group = json.UserInfo.GroupName;
+               var admin = json.UserInfo.Admin;
+
+               if(result == "SUCCESS")
+               {
+                       sessionStorage.sessionInfoEmail = email;
+                       sessionStorage.sessionInfoName = name;
+                       sessionStorage.sessionInfoGroup = group;
+                       sessionStorage.sessionInfoAdmin = admin;
+                       $.mobile.changePage("#index"); 
+               } 
+               else
+               {
+                       alert(message);
+               }
        });
 }