From 6cdcababdc6fc85502ddb1cd3265d5c1932f50ad Mon Sep 17 00:00:00 2001 From: donghee yang Date: Wed, 3 Apr 2013 12:30:20 +0900 Subject: [PATCH] 2013-04-03 sources upload Change-Id: I1e88890ff266b1f57e8016c5198d798a94709c28 --- README | 63 +- build-cli | 94 +-- build-svr | 2 +- dibs-web/app/controllers/admin_controller.rb | 30 +- .../admin_distribution_controller.rb | 22 - .../app/controllers/admin_group_controller.rb | 88 ++- .../controllers/admin_project_controller.rb | 79 +-- .../controllers/admin_server_controller.rb | 48 +- .../app/controllers/admin_user_controller.rb | 116 ++-- .../app/controllers/projects_controller.rb | 97 ++- dibs-web/app/controllers/utils.rb | 9 +- dibs-web/config/application.rb | 1 + dibs-web/config/database.yml | 46 -- dibs-web/config/routes.rb | 3 +- dibs-web/public/index.html | 480 +++++++------- .../javascripts/admin-distribution-add.js | 30 +- .../javascripts/admin-distribution-modify.js | 52 +- .../public/javascripts/admin-distribution.js | 38 +- .../public/javascripts/admin-group-add.js | 53 +- .../public/javascripts/admin-group-modify.js | 88 +-- dibs-web/public/javascripts/admin-group.js | 46 +- .../public/javascripts/admin-project-add.js | 107 +--- .../javascripts/admin-project-modify.js | 144 ++--- dibs-web/public/javascripts/admin-project.js | 83 +-- .../public/javascripts/admin-server-add.js | 22 +- .../public/javascripts/admin-server-modify.js | 28 +- .../public/javascripts/admin-server-remove.js | 8 +- .../public/javascripts/admin-user-modify.js | 78 ++- dibs-web/public/javascripts/admin-user.js | 61 +- dibs-web/public/javascripts/build.js | 56 +- dibs-web/public/javascripts/dibs-api.js | 10 +- dibs-web/public/javascripts/jobs.js | 121 ++-- dibs-web/public/javascripts/log.js | 29 +- dibs-web/public/javascripts/main.js | 22 +- dibs-web/public/javascripts/projects.js | 39 +- dibs-web/public/javascripts/session.js | 25 +- dibs-web/public/javascripts/user.js | 20 +- dibs-web/public/log.html | 4 +- dibs-web/public/stylesheets/style.css | 116 ++++ dibs-web/public/upload.html | 2 +- package/build.linux | 1 + package/build.macos | 1 + package/build.windows | 1 + package/changelog | 26 + package/pkginfo.manifest | 2 +- pkg-cli | 53 +- pkg-svr | 2 +- src/build_server/BuildClientOptionParser.rb | 21 +- src/build_server/BuildJob.rb | 597 +++++++++--------- src/build_server/BuildServer.rb | 127 ++-- src/build_server/BuildServerController.rb | 4 +- src/build_server/BuildServerException.rb | 6 +- src/build_server/BuildServerOptionParser.rb | 2 +- src/build_server/CommonJob.rb | 74 ++- src/build_server/DistributionManager.rb | 17 +- src/build_server/GitBuildJob.rb | 5 + src/build_server/JobLog.rb | 4 +- src/build_server/JobManager.rb | 109 ++-- src/build_server/MultiBuildJob.rb | 54 +- src/build_server/PackageSync.rb | 6 +- src/build_server/RegisterPackageJob.rb | 46 +- src/build_server/RemoteBuildJob.rb | 45 -- src/build_server/RemoteBuildServer.rb | 145 ++--- src/build_server/ReverseBuildChecker.rb | 40 +- src/build_server/SocketJobRequestListener.rb | 358 ++++++----- src/builder/Builder.rb | 24 + src/common/BuildComm.rb | 29 +- src/common/FileTransferViaDirect.rb | 9 + src/common/Version.rb | 3 + src/common/db_utils.rb | 64 ++ src/common/log.rb | 1 - src/common/package.rb | 18 +- src/common/parser.rb | 9 +- src/common/utils.rb | 37 ++ src/pkg_server/SocketRegisterListener.rb | 35 +- src/pkg_server/client.rb | 536 ++++++++++------ src/pkg_server/clientOptParser.rb | 81 ++- src/pkg_server/downloader.rb | 11 +- src/pkg_server/packageServer.rb | 26 +- src/pkg_server/serverOptParser.rb | 5 +- .../build-server.basic1/build-cli-01.testcase | 2 - .../build-server.basic1/build-cli-11.testcase | 2 +- test/build-server.basic1/buildsvr.init | 2 +- test/build-server.basic1/pkgsvr.init | 2 +- test/build-server.basic1/testsuite | 1 - test/build-server.multi-svr1/buildsvr1.init | 2 +- test/build-server.multi-svr2/buildsvr.init | 2 +- .../build-svr3-03.testcase | 10 +- test/build-server.multi_dist2/buildsvr.init | 2 +- test/pkg-cli-update.testcase | 6 - test/pkg-cli.testsuite | 1 - web-svr | 364 +++++++++++ 92 files changed, 3037 insertions(+), 2453 deletions(-) delete mode 100644 dibs-web/config/database.yml create mode 100644 dibs-web/public/stylesheets/style.css delete mode 100644 src/build_server/RemoteBuildJob.rb create mode 100644 src/common/db_utils.rb delete mode 100644 test/pkg-cli-update.testcase create mode 100755 web-svr diff --git a/README b/README index f373da2..9bbb9a1 100644 --- a/README +++ b/README @@ -194,21 +194,12 @@ There are more useful commands provided 4.1 List Up Available Packages You can list up available packages of server. - ## pkg-cli list-rpkg [-o ] [-u ] + ## pkg-cli list-rpkg -u [-o ] ## -o : Target OS(ubuntu-32/ubuntu-64/windows-32/windows-64/macos-64) ## -u : Package server URL which contains binary and development packages. ## If ommited, it will use previous server URL. 1. List up packages - ex) - - $ pkg-cli update -u http://172.21.17.55/dibs/unstable_release - - ex) - - $ pkg-cli list-rpkg - - 2. List up packages with updating ex) $ pkg-cli list-rpkg -u http://172.21.17.55/dibs/unstable_release @@ -224,41 +215,7 @@ You can list up packages of your install directory $ pkg-cli list-lpkg -l ~/tizen_sdk -4.2 Update Package List -You should have package list of server in your host before listing, installing and downloading packages. So, if you want to install the latest package, then you should update your package list before installing. - - ## pkg-cli update [-u ] - ## -u : Package server URL which contains binary and development packages. - ## If ommited, it will use previous server URL. - - 1. Update package list from server - ex) - - $ pkg-cli update -u http://172.21.17.55/dibs/unstable_release - - 2. Install / download packages from server - ex) - - $ pkg-cli install -p nativeapp-eplugin -l ~/tizen_sdk - - ex) - - $ pkg-cli install -p unittest-eplugin -l ~/tizen_sdk - - ex) - - $ pkg-cli download -p base-ide-product -l ~/downloads - - 3. If package is updated on server and you want to use is, you should update your package list. If you do not set the server url, it will be set previous server URL. - ex) - - $ pkg-cli update - - ex) - - $ pkg-cli install -p nativeapp-eplugin -l ~/tizen_sdk - -4.3 Upgrade Packages +4.2 Upgrade Packages You can upgrade your installed packages from server. ## pkg-cli upgrade -l -u @@ -270,28 +227,22 @@ You can upgrade your installed packages from server. 1. Check package for upgrading ex) - $ pkg-cli update -u http://172.21.17.55/dibs/unstable_release - $ pkg-cli check-upgrade -l ~/tizen_sdk + $ pkg-cli check-upgrade -l ~/tizen_sdk -u http://172.21.17.55/dibs/unstable_release 2. Upgrade packages - ex) - - $ pkg-cli upgrade -l ~/tizen_sdk - - 3. Upgrade packages with updating ex) $ pkg-cli upgrade -l ~/tizen_sdk -u http://172.21.17.55/dibs/unstable_release - 4. If you want to upgrade specific package, you can upgrade it as installing + 3. If you want to upgrade specific package, you can upgrade it as installing ex) $ pkg-cli install -p common-eplugin -l ~/tizen_sdk -u http://172.21.17.55/dibs/unstable_release -4.4 Install SDK +4.3 Install SDK You can also install new SDK using the network install command. Originally this command is used for installing packages by network. But you can set "TIZEN-SDK" as package name, all Tizen SDK packages will be installed. - ## pkg-cli install -p [-u ] [-l ] [-t] [-f] + ## pkg-cli install -p -u [-l ] [-t] [-f] ## -p : Binary package name which you want to install ## -u : Package server URL which contains binary and development packages. ## If ommited, it will use previous server URL. @@ -304,7 +255,7 @@ You can also install new SDK using the network install command. Originally this 1. Install "TIZEN-SDK" by network to new location("~/tizen_sdk2") ex) - $ pkg-cli install -p TIZEN-SDK -l ~/tizen_sdk2 -t + $ pkg-cli install -p TIZEN-SDK -u http://172.21.17.55/dibs/unstable_release -l ~/tizen_sdk2 -t 2. Change Tizen SDK configuration ex) diff --git a/build-cli b/build-cli index fb9758e..e6120db 100755 --- a/build-cli +++ b/build-cli @@ -138,6 +138,22 @@ def query_job_list(ip, port) end end +def upload_request(bs_ip, bs_port, dock, transporter, package ) + client = BuildCommClient.create( bs_ip, bs_port, nil, 0 ) + if client.nil? then + raise RuntimeError, "Can't access server #{bs_ip}:#{bs_port}" + end + msg = "UPLOAD|#{dock}" + client.send( msg ) + result = client.send_file(package, transporter) + client.terminate + if not result then + raise RuntimeError, "Uploading file failed!.. #{result}" + else + puts "Uploading file success!.. #{result}" + end +end + # if "--os" is not specified, use pe if option[:os].nil? then @@ -171,22 +187,22 @@ begin puts "Connection to server failed!" exit 1 end - when "resolve" - result = Utils.parse_server_addr(option[:domain]) - if result.nil? then - puts "Server address is incorrect. (#{option[:domain]})" - puts "Tune as following format." - puts " :" - exit 1 - end - client = BuildCommClient.create( result[0], result[1], nil, 0 ) - if not client.nil? then - client.send "RESOLVE|GIT|#{option[:project]}|#{option[:passwd]}|#{option[:os]}|#{option[:async]}|#{option[:dist]}|#{option[:user]}|#{option[:verbose]}" - if not client.print_stream then - puts "ERROR: #{client.get_error_msg()}" - end - client.terminate - end +# when "resolve" +# result = Utils.parse_server_addr(option[:domain]) +# if result.nil? then +# puts "Server address is incorrect. (#{option[:domain]})" +# puts "Tune as following format." +# puts " :" +# exit 1 +# end +# client = BuildCommClient.create( result[0], result[1], nil, 0 ) +# if not client.nil? then +# client.send "RESOLVE|GIT|#{option[:project]}|#{option[:passwd]}|#{option[:os]}|#{option[:async]}|#{option[:dist]}|#{option[:user]}|#{option[:verbose]}" +# if not client.print_stream then +# puts "ERROR: #{client.get_error_msg()}" +# end +# client.terminate +# end when "query" result = Utils.parse_server_addr(option[:domain]) if result.nil? then @@ -297,34 +313,38 @@ begin transporter = FileTransferDirect.new( nil ) end - # upload - client = BuildCommClient.create( bs_ip, bs_port, nil, 0 ) - if client.nil? then - puts "Can't access server #{bs_ip}:#{bs_port}" - exit(-1) - end - dock = Utils.create_uniq_name() - msg = "UPLOAD|#{dock}" - client.send( msg ) - result = client.send_file(option[:package], transporter) - client.terminate - if not result then - puts "Uploading file failed!.. #{option[:package]}" - exit(-1) - end - # register client = BuildCommClient.create( bs_ip, bs_port, nil, 0 ) if client.nil? then puts "Can't access server #{bs_ip}:#{bs_port}" exit(-1) end - client.send("REGISTER|BINARY|#{File.basename(option[:package])}|#{option[:passwd]}|#{dock}|#{option[:dist]}|#{option[:user]}|#{option[:noreverse]}") - if not client.print_stream then - puts "ERROR: #{client.get_error_msg()}" - end - client.terminate + begin + dock = Utils.create_uniq_name() + client.send("REGISTER|BINARY|#{File.basename(option[:package])}|#{option[:passwd]}|#{dock}|#{option[:dist]}|#{option[:user]}|#{option[:noreverse]}") + client.read_lines do |line| + if line.eql?("WAITFORUPLOAD") then + # upload + thread = Thread.new do + begin + upload_request(bs_ip, bs_port, dock, transporter, option[:package]) + rescue => e + puts "Transfering file failed!" + puts e.message + puts e.backtrace.inspect + end + end + + thread.join + client.send("REGISTERCONTINUE") + else + puts line + end + end + ensure + client.terminate + end else raise RuntimeError, "input option incorrect : #{option[:cmd]}" end diff --git a/build-svr b/build-svr index fc9a98f..12306e9 100755 --- a/build-svr +++ b/build-svr @@ -172,7 +172,7 @@ begin pkgsvr_url = option[:url] pkgsvr_addr = svr_result[0] pkgsvr_port = svr_result[1] - BuildServerController.add_distribution( option[:name], option[:dist], pkgsvr_url, pkgsvr_addr, pkgsvr_port ) + BuildServerController.add_distribution( option[:name], option[:dist], pkgsvr_url, pkgsvr_addr, pkgsvr_port, option[:passwd] ) when "remove-dist" BuildServerController.remove_distribution( option[:name], option[:dist] ) diff --git a/dibs-web/app/controllers/admin_controller.rb b/dibs-web/app/controllers/admin_controller.rb index b2803d5..c6ea473 100644 --- a/dibs-web/app/controllers/admin_controller.rb +++ b/dibs-web/app/controllers/admin_controller.rb @@ -31,23 +31,23 @@ class AdminController < ApplicationController before_filter :check_login_status, :check_admin_group def queryAllOS - os_list = SupportedOs.all(:order => "name") + os_list = SupportedOs.find_by_sql("SELECT supported_os.name AS os_name + , os_category.name AS category_name + FROM supported_os + , os_category + WHERE supported_os.os_category_id = os_category.id + ORDER BY supported_os.name") doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { generate_xml_header(doc) doc.Data { - if not os_list.nil? - os_list.each do |os| - doc.OS { - doc.OsName(os.name) - category = OsCategory.find(:first, :conditions => ["id = ?", os.os_category_id]) - if not category.nil? - doc.OsCategory(category.name) - end - } - end + os_list.each do |os| + doc.OS { + doc.OsName(os.os_name) + doc.OsCategory(os.category_name) + } end } } @@ -57,17 +57,15 @@ class AdminController < ApplicationController end def queryAllOSCategory - os_category_list = OsCategory.all(:order => "name") + os_category_list = OsCategory.find(:all, :order => "name") doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { generate_xml_header(doc) doc.Data { - if not os_category_list.nil? - os_category_list.each do |category| - doc.OsCategoryName(category.name) - end + os_category_list.each do |category| + doc.OsCategoryName(category.name) end } } diff --git a/dibs-web/app/controllers/admin_distribution_controller.rb b/dibs-web/app/controllers/admin_distribution_controller.rb index 6d838c6..aa91a87 100644 --- a/dibs-web/app/controllers/admin_distribution_controller.rb +++ b/dibs-web/app/controllers/admin_distribution_controller.rb @@ -30,28 +30,6 @@ class AdminDistributionController < ApplicationController before_filter :check_login_status, :check_admin_group - def queryAllDistribution - # get full distribution list - distributions = Distribution.all - - doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) - doc.Response { - generate_xml_header(doc) - - #generate to XML - doc.Data { - if not distributions.nil? - distributions.each do |distribution| - doc.DistributionName(distribution.name) - end - end - } - } - - #send_data - render :text => out_string, :content_type => "text/xml" - end - def queryDistributionInfo dist_name = params[:distribution] diff --git a/dibs-web/app/controllers/admin_group_controller.rb b/dibs-web/app/controllers/admin_group_controller.rb index 5818e1b..6820593 100644 --- a/dibs-web/app/controllers/admin_group_controller.rb +++ b/dibs-web/app/controllers/admin_group_controller.rb @@ -32,37 +32,36 @@ class AdminGroupController < ApplicationController skip_before_filter :check_admin_group, :only => [:queryAllGroup] def queryAllGroup - project_list = Project.all(:order => "name") - group_list = Group.all + group_list = Group.find(:all) doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { generate_xml_header(doc) doc.Data { - if not group_list.nil? - group_list.each do |group| - group_access_list = GroupProjectAccess.find(:all, :conditions => ["group_id = ?", group.id]) - - doc.Group { - doc.GroupName(group.name) - doc.AdminFlag(group.admin) - doc.Description(group.description) - - if not group_access_list.nil? - group_access_list.each do |group_right| - project = Project.find(:first, :conditions => ["id = ?", group_right.project_id]); - distribution = Distribution.find(:first, :conditions => ["id = ?", project.distribution_id]); - if not project.nil? - doc.AccessableProject { - doc.ProjectName(project.name) - doc.ProjectDistribution(distribution.name) - } - end - end - end - } - end + group_list.each do |group| + doc.Group { + doc.GroupName(group.name) + doc.AdminFlag(group.admin) + doc.Description(group.description) + + project_list = GroupProjectAccess.find_by_sql("SELECT projects.name AS project_name + , distributions.name AS distribution_name + FROM group_project_accesses + , projects + , distributions + WHERE group_project_accesses.group_id = #{group.id} + AND projects.id = group_project_accesses.project_id + AND distributions.id = projects.distribution_id + ORDER BY projects.name") + + project_list.each do |project| + doc.AccessableProject { + doc.ProjectName(project.project_name) + doc.ProjectDistribution(project.distribution_name) + } + end + } end } } @@ -84,37 +83,36 @@ class AdminGroupController < ApplicationController return end - project_list = Project.all(:order => "name") - #generate to XML doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { generate_xml_header(doc) doc.Data { - if not project_list.nil? - project_list.each do |project| - distribution = Distribution.find(:first, :conditions => ["id = ?", project.distribution_id]); - doc.Project{ - doc.Name(project.name) - doc.Id(project.id) - doc.DistName(distribution.name) - } - end + project_list = Project.find_by_sql("SELECT projects.name AS project_name + , projects.id AS project_id + , distributions.name AS distribution_name + FROM projects + , distributions + WHERE distributions.id = projects.distribution_id + ORDER BY projects.name") + + project_list.each do |project| + doc.Project{ + doc.Name(project.project_name) + doc.Id(project.project_id) + doc.DistName(project.distribution_name) + } end doc.Group { - doc.Name(group.name) - group_access_list = GroupProjectAccess.find(:all, :conditions => ["group_id = ?", group.id]) - if not group_access_list.nil? and not group_access_list.empty? - project_id_list = [] - group_access_list.each do |group_right| - project_id_list.push group_right.project_id - end - - doc.ProjectList(project_id_list.join(",")) + project_id_list = [] + group_access_list.each do |group_right| + project_id_list.push group_right.project_id end + + doc.ProjectIdList(project_id_list.join(",")) } } } diff --git a/dibs-web/app/controllers/admin_project_controller.rb b/dibs-web/app/controllers/admin_project_controller.rb index a0f7b72..e125bc6 100644 --- a/dibs-web/app/controllers/admin_project_controller.rb +++ b/dibs-web/app/controllers/admin_project_controller.rb @@ -28,22 +28,25 @@ Contributors: class AdminProjectController < ApplicationController def queryAllProject - project_list = Project.all(:order => "name") + project_list = Project.find_by_sql("SELECT projects.name AS project_name + , projects.id AS project_id + , distributions.name AS distribution_name + FROM projects + , distributions + WHERE distributions.id = projects.distribution_id + ORDER BY projects.name") doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { generate_xml_header(doc) doc.Data { - if not project_list.nil? - project_list.each do |project| - distribution = Distribution.find(:first, :conditions => ["id = ?", project.distribution_id]); - doc.Project{ - doc.Name(project.name) - doc.Id(project.id) - doc.DistName(distribution.name) - } - end + project_list.each do |project| + doc.Project{ + doc.Name(project.project_name) + doc.Id(project.project_id) + doc.DistName(project.distribution_name) + } end } } @@ -81,37 +84,39 @@ class AdminProjectController < ApplicationController WHERE distributions.name = \"#{dist_name}\" AND distributions.id = projects.distribution_id ORDER BY projects.name") - if not project_list.nil? - project_list.each do |project| - doc.Project { - doc.ProjectName(project.name) - doc.Type(project.ptype) + + project_list.each do |project| + doc.Project { + doc.ProjectName(project.name) + doc.Type(project.ptype) - os_list = ProjectOs.find(:all, :conditions => ["project_id = ?", project.id]) - if not os_list.nil? then - os_list.each do |os| - supported_os = SupportedOs.find(:first, :conditions => ["id = ?", os.supported_os_id]) - doc.OS(supported_os.name) - end + os_list = ProjectOs.find_by_sql("SELECT supported_os.name AS name + FROM project_os + , supported_os + WHERE project_os.project_id = #{project.id} + AND project_os.supported_os_id = supported_os.id + ORDER BY supported_os.name") + os_list.each do |os| + doc.OS(os.name) + end + + case project.ptype.upcase + when "GIT" + git = ProjectGit.find(:first, :conditions => ["project_id = ?", project.id]) + if not git.nil? then + doc.GitRepos(git.git_repos) + doc.GitBranch(git.git_branch) end - - case project.ptype.upcase - when "GIT" - git = ProjectGit.find(:first, :conditions => ["project_id = ?", project.id]) - if not git.nil? then - doc.GitRepos(git.git_repos) - doc.GitBranch(git.git_branch) - end - - when "BINARY" - bin = ProjectBin.find(:first, :conditions => ["project_id = ?", project.id]) - if not bin.nil? then - doc.PackageName(bin.pkg_name) - end + + when "BINARY" + bin = ProjectBin.find(:first, :conditions => ["project_id = ?", project.id]) + if not bin.nil? then + doc.PackageName(bin.pkg_name) end - } - end + end + } end + } } diff --git a/dibs-web/app/controllers/admin_server_controller.rb b/dibs-web/app/controllers/admin_server_controller.rb index 8efb20d..35f0d5a 100644 --- a/dibs-web/app/controllers/admin_server_controller.rb +++ b/dibs-web/app/controllers/admin_server_controller.rb @@ -29,8 +29,8 @@ Contributors: class AdminServerController < ApplicationController def queryAllServer # get full distribution list - server_config = Server_config.all - remote_build_servers = RemoteBuildServer.all + server_config = Server_config.find(:all) + remote_build_servers = RemoteBuildServer.find(:all) doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { @@ -38,32 +38,28 @@ class AdminServerController < ApplicationController #generate to XML doc.Data { - if not server_config.nil? - server_config.each do |info| - doc.ServerConfig { - doc.Property( info.property ) - doc.Value( info.value ) - } - end + server_config.each do |info| + doc.ServerConfig { + doc.Property( info.property ) + doc.Value( info.value ) + } end - if not remote_build_servers.nil? - remote_build_servers.each do |server| - doc.RemoteBuildServer { - doc.Address(server.svr_addr) - supported_os = SupportedOs.find(:first, :conditions => ["id = ?", server.supported_os_id]) - if supported_os.nil? - doc.SupportedOS("") - else - doc.SupportedOS(supported_os.name) - end - doc.Status(server.status) - doc.MaxJobCount(server.max_job_count) - doc.WorkingJobCount(server.working_job_count) - doc.WaitingJobCount(server.waiting_job_count) - doc.Description(server.description) - } - end + remote_build_servers.each do |server| + doc.RemoteBuildServer { + doc.Address(server.svr_addr) + supported_os = SupportedOs.find(:first, :conditions => ["id = ?", server.supported_os_id]) + if supported_os.nil? + doc.SupportedOS("") + else + doc.SupportedOS(supported_os.name) + end + doc.Status(server.status) + doc.MaxJobCount(server.max_job_count) + doc.WorkingJobCount(server.working_job_count) + doc.WaitingJobCount(server.waiting_job_count) + doc.Description(server.description) + } end } } diff --git a/dibs-web/app/controllers/admin_user_controller.rb b/dibs-web/app/controllers/admin_user_controller.rb index 7f4af7e..17791c3 100644 --- a/dibs-web/app/controllers/admin_user_controller.rb +++ b/dibs-web/app/controllers/admin_user_controller.rb @@ -31,34 +31,34 @@ class AdminUserController < ApplicationController before_filter :check_login_status, :check_admin_group def queryAllUser - user_list = User.all(:order => "name") + user_list = User.find(:all, :order => "name") doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { generate_xml_header(doc) doc.Data { - if not user_list.nil? - user_list.each do |user| - doc.User { - doc.Name(user.name) - doc.Email(user.email) - doc.GroupList { - group_list = Group.find_by_sql("SELECT groups.name - , groups.admin - , groups.description - FROM users - , user_groups - , groups - WHERE users.id = user_groups.user_id - AND user_groups.group_id = groups.id - AND users.email = \"#{user.email}\"") - group_list.each { |group| - doc.GroupName(group.name) - } - } + user_list.each do |user| + doc.User { + doc.Name(user.name) + doc.Email(user.email) + doc.Id(user.id) + doc.GroupList { + group_list = Group.find_by_sql("SELECT groups.name + , groups.admin + , groups.description + FROM users + , user_groups + , groups + WHERE users.email = \"#{user.email}\" + AND users.id = user_groups.user_id + AND user_groups.group_id = groups.id + ORDER BY users.name") + group_list.each do |group| + doc.GroupName(group.name) + end } - end + } end } } @@ -67,13 +67,55 @@ class AdminUserController < ApplicationController render :text => out_string, :content_type => "text/xml" end + def queryUserInfo + user_id = params[:user_id] + + user = User.find(:first, :conditions => ["id = ?", user_id]) + + doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) + doc.Response { + generate_xml_header(doc) + + doc.Data { + doc.User { + doc.Name(user.name) + doc.Email(user.email) + doc.Id(user.id) + doc.GroupInfo{ + full_group_list = Group.find(:all) + full_group_list.each do |group| + doc.Group { + doc.Name(group.name) + doc.Id(group.id) + } + end + + group_list = Group.find_by_sql("SELECT user_groups.group_id + FROM users + , user_groups + WHERE users.id = #{user.id} + AND users.id = user_groups.user_id") + group_id_list = [] + group_list.each do |group| + group_id_list.push group.group_id + end + doc.GroupIdList(group_id_list.join(",")) + } + } + } + } + + #send_data + render :text => out_string, :content_type => "text/xml" + end + def modifyUser change_user_list = params[:ChangeInfoList] change_item = change_user_list[0] errmsg = "" email = change_item[:Email] - group_name = change_item[:GroupName] + group_id_list = change_item[:GroupIdList].split(",") user_name = change_item[:UserName] if email.nil? or email.empty? @@ -89,29 +131,21 @@ class AdminUserController < ApplicationController end end - if group_name.nil? or group_name.empty? - render :text => "Group name is invalid", :status => 406 - return - else - group = Group.find(:first, :conditions => ["name = ?", group_name]) - if group.nil? - errmsg = "Can't find group information" - render :text => errmsg, :status => 406 - return - end - end - - user.name = user_name + user.name = user_name user.save UserGroup.delete_all(["user_id = ?", user.id]) - user_groups = UserGroup.new - - user_groups.user_id = user.id - user_groups.group_id = group.id - user_groups.status = "ACTIVE" - user_groups.save + if not group_id_list.nil? + group_id_list.each do |group_id| + user_groups = UserGroup.new + + user_groups.user_id = user.id + user_groups.group_id = group_id + user_groups.status = "ACTIVE" + user_groups.save + end + end render :json => { :success => "OK!" } end diff --git a/dibs-web/app/controllers/projects_controller.rb b/dibs-web/app/controllers/projects_controller.rb index 2bb8c94..947b5e0 100644 --- a/dibs-web/app/controllers/projects_controller.rb +++ b/dibs-web/app/controllers/projects_controller.rb @@ -48,11 +48,9 @@ class ProjectsController < ApplicationController password_list = [] dist_name = nil - build_type = nil change_group_list.each do |change_item| dist_name = change_item[:distribution] - build_type = change_item[:buildType] project_name = change_item[:projectName] os = change_item[:os] @@ -71,7 +69,7 @@ class ProjectsController < ApplicationController if (project_list.length > 1) or (not (project_list[0].nil? or project_list[0].empty?)) # execute build command begin - Utils.sbi_build_command(build_type, dist_name, project_list, os_list, password_list, get_user_email) + Utils.sbi_build_command(dist_name, project_list, os_list, password_list, get_user_email) rescue => e render :text => e.message, :status => 406 return @@ -132,8 +130,16 @@ class ProjectsController < ApplicationController dist_name = params[:distribution] user_id = get_user_id - distribution = Distribution.find(:first, :conditions => ["name = ?", dist_name]) - projects = Project.find(:all, :conditions => ["distribution_id = ?", distribution.id], :order => "name") + projects = Project.find_by_sql("SELECT projects.name AS project_name + , projects.ptype AS project_type + , projects.id AS project_id + , users.email AS maintainer + FROM projects + , distributions + , users + WHERE distributions.name = \"#{dist_name}\" + AND projects.distribution_id = distributions.id + AND users.id = projects.user_id") #generate to XML doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) @@ -143,28 +149,23 @@ class ProjectsController < ApplicationController doc.ProjectList { projects.each { |project| doc.Project { - doc.Name(project.name) - doc.Type(project.ptype) - maintainer = User.find(:first, :conditions => ["id = ?", project.user_id]) - if not maintainer.nil? - doc.Maintainer(maintainer.email) - else - doc.Maintainer("") - end + doc.Name(project.project_name) + doc.Type(project.project_type) + doc.Maintainer(project.maintainer) - if checkUserAccessProject(user_id, project.id) + if checkUserAccessProject(user_id, project.project_id) doc.GroupAccess("TRUE") else doc.GroupAccess("FALSE") end - os_list = ProjectOs.find(:all, :conditions => ["project_id = ?", project.id], :order => "supported_os_id") + os_list = ProjectOs.find(:all, :conditions => ["project_id = ?", project.project_id], :order => "supported_os_id") os_list.each { |os| doc.ProjectOs { os_info = SupportedOs.find(:first, :conditions => ["id = ?", os.supported_os_id]) doc.OsName(os_info.name) - source = queryPackageInfo(project.id, os.supported_os_id) + source = queryPackageInfo(project.project_id, os.supported_os_id) if source.nil? doc.Package { doc.PackageName() @@ -205,20 +206,20 @@ class ProjectsController < ApplicationController dist_name = params[:distribution] running_project_list = Project.find_by_sql("SELECT projects.name - , projects.ptype - , jobs.status - , supported_os.name AS os_name - FROM jobs - , projects - , supported_os - , distributions - WHERE jobs.project_id = projects.id - AND distributions.name = \"#{dist_name}\" - AND projects.distribution_id = distributions.id - AND NOT jobs.status in ('FINISHED', 'ERROR', 'CANCELED') - AND supported_os.id = jobs.supported_os_id - ORDER BY jobs.id") - + , projects.ptype + , jobs.status + , supported_os.name AS os_name + FROM jobs + , projects + , supported_os + , distributions + WHERE jobs.project_id = projects.id + AND distributions.name = \"#{dist_name}\" + AND projects.distribution_id = distributions.id + AND NOT jobs.status in ('FINISHED', 'ERROR', 'CANCELED') + AND supported_os.id = jobs.supported_os_id + ORDER BY jobs.id") + #generate to XML doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) doc.Response { @@ -258,24 +259,7 @@ class ProjectsController < ApplicationController projects = Project.find(:all, :conditions => ["distribution_id = ?", distribution.id], :order => "name") osList = SupportedOs.find(:all) - # check can build - project_access_list = [] - - # get all my project - group_list = get_group_list(get_user_email) - - group_id_list = [] - group_list.each { |group| - group_id_list.push group.id - } - - group_name_list_string = - group_access_project_list = GroupProjectAccess.find(:all, :conditions => ["group_id in (?)", group_id_list.join(",") ]) - if not group_access_project_list.nil? - group_access_project_list.each do |access_project| - project_access_list.push access_project.project_id - end - end + user_id = get_user_id #generate to XML doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) @@ -293,7 +277,7 @@ class ProjectsController < ApplicationController projects.each do |project| if project.ptype.eql? "BINARY" bin = ProjectBin.find(:first, :conditions => ["project_id = ?", project.id]) - if project_access_list.include? project.id + if checkUserAccessProject(user_id, project.id) doc.BinaryProject { doc.ProjectName(project.name) if not bin.nil? then @@ -317,7 +301,7 @@ class ProjectsController < ApplicationController buildOsNameList.push(supported_os.name) end - if project_access_list.include? project.id + if checkUserAccessProject(user_id, project.id) doc.Project { doc.ProjectName(project.name) doc.OsList(buildOsNameList.join(",")) @@ -340,13 +324,8 @@ class ProjectsController < ApplicationController end def queryDistribution - distribution_list = [] - # get full distribution list - distributions = Distribution.all - distributions.each {|distribution| - distribution_list.push distribution.name - } + distribution_list = Distribution.find(:all) #generate to XML doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 ) @@ -354,10 +333,8 @@ class ProjectsController < ApplicationController generate_xml_header(doc) doc.Data { - if not distribution_list.nil? - distribution_list.each do |distribution| - doc.DistributionName(distribution) - end + distribution_list.each do |distribution| + doc.DistributionName(distribution.name) end } } diff --git a/dibs-web/app/controllers/utils.rb b/dibs-web/app/controllers/utils.rb index b0e5f4b..92c9826 100644 --- a/dibs-web/app/controllers/utils.rb +++ b/dibs-web/app/controllers/utils.rb @@ -30,7 +30,7 @@ Contributors: BUILD_SERVER_ADDRESS = "127.0.0.1" class Utils < ApplicationController - def Utils.sbi_build_command(sub_cmd, distribution, project_list, os_list, password_list, email) + def Utils.sbi_build_command(distribution, project_list, os_list, password_list, email) dibs_path = File.dirname(File.dirname(File.dirname(File.dirname(__FILE__)))) dibs_config = Server_config.find(:first, :conditions => ["property = \"port\""]) if dibs_config.nil? @@ -51,7 +51,7 @@ class Utils < ApplicationController options = options + " -U #{email} " end - cmd = "#{dibs_path}/build-cli #{sub_cmd} #{options}" + cmd = "#{dibs_path}/build-cli build #{options}" puts "Build command" puts "[[[#{cmd}]]]" @@ -111,6 +111,7 @@ puts "[[[#{cmd}]]]" options = "-n #{server_name} --dist #{dist_name} " cmd = "#{dibs_path}/build-svr fullbuild #{options}" + cmd = "which ruby" puts "Fullbuild command" puts "[[[#{cmd}]]]" return execute_shell_return(cmd) @@ -121,8 +122,8 @@ puts "[[[#{cmd}]]]" ret = false # get result - IO.popen("#{cmd}") - #system "#{cmd}" + #IO.popen("#{cmd}") + system "#{cmd}" return true end diff --git a/dibs-web/config/application.rb b/dibs-web/config/application.rb index 1e8680c..fd10b4f 100644 --- a/dibs-web/config/application.rb +++ b/dibs-web/config/application.rb @@ -58,5 +58,6 @@ module Dibs # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' + end end diff --git a/dibs-web/config/database.yml b/dibs-web/config/database.yml deleted file mode 100644 index 319f61e..0000000 --- a/dibs-web/config/database.yml +++ /dev/null @@ -1,46 +0,0 @@ -# SQLite version 3.x -# gem install sqlite3 -# -# Ensure the SQLite 3 gem is defined in your Gemfile -# gem 'sqlite3' -# development: -# adapter: sqlite3 -# database: db/development.sqlite3 -# pool: 5 -# timeout: 5000 -# -# # Warning: The database defined as "test" will be erased and -# # re-generated from your development database when you run "rake". -# # Do not set this db to the same as development or production. - test: - adapter: - encoding: - host: - port: - database: - username: - password: - pool: - timeout: - - production: - adapter: - encoding: - host: - port: - database: - username: - password: - pool: - timeout: - - development: - adapter: - encoding: - host: - port: - database: - username: - password: - pool: - timeout: diff --git a/dibs-web/config/routes.rb b/dibs-web/config/routes.rb index 5d0385e..b9b9e8d 100644 --- a/dibs-web/config/routes.rb +++ b/dibs-web/config/routes.rb @@ -27,7 +27,6 @@ Contributors: =end Dibs::Application.routes.draw do - root :to => "sessions#new" get "sessions/new" => "sessions#new" @@ -83,6 +82,7 @@ Dibs::Application.routes.draw do # admin user get "admin_user/queryAllUser" + get "admin_user/queryUserInfo/:user_id" => "admin_user#queryUserInfo" post "admin_user/removeUser" post "admin_user/modifyUser" @@ -109,7 +109,6 @@ Dibs::Application.routes.draw do post "admin_project/modifyProject" # admin distribution - get "admin_distribution/queryAllDistribution" match "admin_distribution/queryDistributionInfo/:distribution" => "admin_distribution#queryDistributionInfo", :constraints => { :distribution => /[0-9A-Za-z\-\.\_]+/ } post "admin_distribution/addDistribution" post "admin_distribution/removeDistribution" diff --git a/dibs-web/public/index.html b/dibs-web/public/index.html index e132087..23771bb 100644 --- a/dibs-web/public/index.html +++ b/dibs-web/public/index.html @@ -36,13 +36,13 @@ Contributors: - + - + - + @@ -72,7 +72,7 @@ Contributors:
- Home + Home

DIBS 2.0

@@ -98,11 +98,11 @@ Contributors:

Log in

-
- - - - + + + + +
Cancel @@ -112,43 +112,31 @@ Contributors:
-
+

Sign up

- - - - - - - - - -
-
+ + + + + + + + + -

-

-
-
-

-
-
-
-
-
- Home + Home

DIBS 2.0

@@ -157,21 +145,22 @@ Contributors:
-

-
-
- - - - - - - - - +
+
+
+ + + + + + + + +

@@ -188,7 +177,7 @@ Contributors:
- Home + Home

DIBS 2.0

@@ -198,38 +187,27 @@ Contributors:
-
-
+

Git project

- +
-
+

Binary project

- +
-
@@ -241,7 +219,7 @@ Contributors:
- Home + Home

DIBS 2.0

@@ -249,73 +227,72 @@ Contributors:
-
-

-
+
- - + + - - + + - - + + - - + + - - + + - - + +
-
+
- - + + - - + + - - + + - - + +
-
-
- +
+ Search -
    +
-
- +
+ Search

-
    +

    - +
@@ -325,18 +302,9 @@ Contributors:
-
- -
-
- - -
-
-
- Home + Home

DIBS 2.0

@@ -346,7 +314,7 @@ Contributors:

User information

- +
@@ -358,35 +326,34 @@ Contributors:
-
+

Modify User

- - + +
- - + +
-
- +
+
+

-

- Save + Save
- Home + Home

DIBS 2.0

@@ -396,10 +363,10 @@ Contributors:

Group information

- +
@@ -413,7 +380,7 @@ Contributors:
- Home + Home

DIBS 2.0

@@ -458,7 +425,7 @@ Contributors:
- Home + Home

DIBS 2.0

@@ -469,7 +436,7 @@ Contributors:

Project information

-
@@ -478,19 +445,19 @@ Contributors:
@@ -506,7 +473,7 @@ Contributors:
- Home + Home

DIBS 2.0

@@ -517,7 +484,7 @@ Contributors:

Distribution information

-
@@ -525,29 +492,29 @@ Contributors:

Package server url

-

+

Package server address

-

+

Status

-

+

Description

-

+

@@ -560,38 +527,38 @@ Contributors:
-
+

Add Distribution

- - + +
- - + +
- - + +
- -
- - + +

Sync package server

- - - - - - + + + + + +
@@ -600,33 +567,33 @@ Contributors:
-
+

Modofy Distribution

- - + +
- - + +
- -
- - + +

Sync package server

- - - - - - + + + + + +
@@ -635,26 +602,26 @@ Contributors:
-
+

Add Git Project

- - + +
- - + +
- - + +
- - + +
-
+

@@ -665,22 +632,22 @@ Contributors:
-
+

Add Binary Project

- - + +
- - + +
- - + +
-
+

@@ -691,33 +658,24 @@ Contributors:
-
+

Modify Project

- +
- - + +
-
- -
- -
+ +
- - -
- - + +
-
+

@@ -728,37 +686,28 @@ Contributors:
-
+

Modify Project

- +
- - + +
-
- -
- -
-
- - + +
- - + +
- - + +
-
+

@@ -769,29 +718,29 @@ Contributors:
-
+

Add Group

- - + +
- +
-

- - + +
-
+

@@ -802,28 +751,29 @@ Contributors:
-
+

modify Group

- - - + +
+ +
- +
-

- - + +
-
+

@@ -841,10 +791,10 @@ Contributors:
- +
- +
@@ -857,13 +807,13 @@ Contributors:
- +
- +
- +
@@ -872,23 +822,23 @@ Contributors:
-
+

User information

- - + +
- - + +
- - + +
- - + +
@@ -903,12 +853,12 @@ Contributors:
- +

-
@@ -924,14 +874,14 @@ Contributors:
- + - +

-
@@ -949,7 +899,7 @@ Contributors:
- +
@@ -966,7 +916,7 @@ Contributors:

-
@@ -982,10 +932,10 @@ Contributors:
- +
- +
@@ -999,10 +949,10 @@ Contributors:
- +
- +
diff --git a/dibs-web/public/javascripts/admin-distribution-add.js b/dibs-web/public/javascripts/admin-distribution-add.js index f648638..9ea84ca 100644 --- a/dibs-web/public/javascripts/admin-distribution-add.js +++ b/dibs-web/public/javascripts/admin-distribution-add.js @@ -29,15 +29,15 @@ Contributors: function adminDistributionAdd() { var changeInfoList = []; var changeInfoItem; - var name = document.getElementById("adminDistributionAddPopup-DistirubtionName").value; - var url = document.getElementById("adminDistributionAddPopup-PackageServerUrl").value; - var address = document.getElementById("adminDistributionAddPopup-PackageServerAddress").value; - var description = document.getElementById("adminDistributionAddPopup-DistributionDescription").value; - var distStatus = $("#adminDistributionAddPopup-DistributionStatus option:selected").val(); + var name = $("#adminDistributionAdd-name").val(); + var url = $("#adminDistributionAdd-url").val(); + var address = $("#adminDistributionAdd-address").val(); + var description = $("#adminDistributionAdd-description").val(); + var distStatus = $("#adminDistributionAdd-status option:selected").val(); - var sync_pkg_svr_url = document.getElementById("adminDistributionAddPopup-SyncPackageServer-Url").value; - var sync_pkg_svr_period = document.getElementById("adminDistributionAddPopup-SyncPackageServer-period").value; - var sync_pkg_svr_description = document.getElementById("adminDistributionAddPopup-SyncPackageServer-Description").value; + var sync_pkg_svr_url = $("#adminDistributionAdd-syncPackageServer-url").val(); + var sync_pkg_svr_period = $("#adminDistributionAdd-syncPackageServer-period").val(); + var sync_pkg_svr_description = $("#adminDistributionAdd-syncPackageServer-description").val(); if(name == "" || url == "" || address == ""){ alert("You must input full data"); @@ -48,13 +48,13 @@ function adminDistributionAdd() { changeInfoList.push(changeInfoItem); addDistribution(changeInfoList, function () { - document.getElementById("adminDistributionAddPopup-DistirubtionName").value = ""; - document.getElementById("adminDistributionAddPopup-PackageServerUrl").value = ""; - document.getElementById("adminDistributionAddPopup-PackageServerAddress").value = ""; - document.getElementById("adminDistributionAddPopup-DistributionDescription").value = ""; - document.getElementById("adminDistributionAddPopup-SyncPackageServer-Url").value = ""; - document.getElementById("adminDistributionAddPopup-SyncPackageServer-period").value = ""; - document.getElementById("adminDistributionAddPopup-SyncPackageServer-Description").value = ""; + $("#adminDistributionAdd-name").val(""); + $("#adminDistributionAdd-url").val(""); + $("#adminDistributionAdd-address").val(""); + $("#adminDistributionAdd-description").val(""); + $("#adminDistributionAdd-syncPackageServer-url").val(""); + $("#adminDistributionAdd-syncPackageServer-period").val(""); + $("#adminDistributionAdd-syncPackageServer-description").val(""); $.mobile.changePage("#adminDistribution"); }); diff --git a/dibs-web/public/javascripts/admin-distribution-modify.js b/dibs-web/public/javascripts/admin-distribution-modify.js index 5c5c293..679e46a 100644 --- a/dibs-web/public/javascripts/admin-distribution-modify.js +++ b/dibs-web/public/javascripts/admin-distribution-modify.js @@ -27,15 +27,15 @@ Contributors: */ function adminDistributionModifyPopupInit() { - var distName = $("#adminDistributionSelect option:selected").val(); - var packageServerUrl = document.getElementById("adminDistribution:packageServerUrl").innerHTML; - var packageServeraddress = document.getElementById("adminDistribution:packageServerAddress").innerHTML; - var serverStatusText = document.getElementById("adminDistribution:distributionStatus").innerHTML; - var serverDescription = document.getElementById("adminDistribution:distributionDescription").innerHTML; + var distName = $("#adminDistribution-distribution-select option:selected").val(); + var packageServerUrl = $("#adminDistribution-url").html(); + var packageServeraddress = $("#adminDistribution-address").html(); + var serverStatusText = $("#adminDistribution-status").html(); + var serverDescription = $("#adminDistribution-description").html(); - var syncPkgSvrUrl = document.getElementById("adminDistribution-SyncPackageServer-Url").innerHTML; - var syncPkgSvrPeriod = document.getElementById("adminDistribution-SyncPackageServer-period").innerHTML; - var syncPkgSvrDescription = document.getElementById("adminDistribution-SyncPackageServer-Description").innerHTML; + var syncPkgSvrUrl = $("#adminDistribution-syncPackageServer-url").html(); + var syncPkgSvrPeriod = $("#adminDistribution-syncPackageServer-period").html(); + var syncPkgSvrDescription = $("#adminDistribution-syncPackageServer-description").html(); if (syncPkgSvrUrl) { syncPkgSvrUrl = syncPkgSvrUrl.replace("Package server url : ", ""); @@ -54,42 +54,42 @@ function adminDistributionModifyPopupInit() { syncPkgSvrDescription = "" } - document.getElementById('adminDistributionModifyPopup-PackageServerUrl').value = packageServerUrl; - document.getElementById('adminDistributionModifyPopup-PackageServerAddress').value = packageServeraddress; - document.getElementById('adminDistributionModifyPopup-Description').value = serverDescription; - document.getElementById('adminDistributionModifyPopup-SyncPackageServer-Url').value = syncPkgSvrUrl; - document.getElementById('adminDistributionModifyPopup-SyncPackageServer-Period').value = syncPkgSvrPeriod; - document.getElementById('adminDistributionModifyPopup-SyncPackageServer-Description').value = syncPkgSvrDescription; + $("#adminDistributionModify-url").val(packageServerUrl); + $("#adminDistributionModify-address").val(packageServeraddress); + $("#adminDistributionModify-description").val(serverDescription); + $("#adminDistributionModify-syncPackageServer-url").val(syncPkgSvrUrl); + $("#adminDistributionModify-syncPackageServer-period").val(syncPkgSvrPeriod); + $("#adminDistributionModify-syncPackageServer-description").val(syncPkgSvrDescription); - $("#adminDistributionModifyPopup-Status").empty(); + $("#adminDistributionModify-status").empty(); var option; if(serverStatusText.toUpperCase() == "OPEN") { option = ''; } else { option = ''; } - $("#adminDistributionModifyPopup-Status").append(option); + $("#adminDistributionModify-status").append(option); if(serverStatusText.toUpperCase() == "CLOSE") { option = ''; } else { option = ''; } - $("#adminDistributionModifyPopup-Status").append(option); - $("#adminDistributionModifyPopup-Status").selectmenu("refresh"); + $("#adminDistributionModify-status").append(option); + $("#adminDistributionModify-status").selectmenu("refresh"); } function adminDistributionModify() { var changeInfoList = []; var changeInfoItem; - var distName = $("#adminDistributionSelect option:selected").val(); - var url = document.getElementById("adminDistributionModifyPopup-PackageServerUrl").value; - var address = document.getElementById("adminDistributionModifyPopup-PackageServerAddress").value; - var description = document.getElementById("adminDistributionModifyPopup-Description").value; - var distStatus = $("#adminDistributionModifyPopup-Status option:selected").val(); - var syncPkgSvrUrl = document.getElementById("adminDistributionModifyPopup-SyncPackageServer-Url").value; - var syncPkgSvrPeriod = document.getElementById("adminDistributionModifyPopup-SyncPackageServer-Period").value; - var syncPkgSvrDescription = document.getElementById("adminDistributionModifyPopup-SyncPackageServer-Description").value; + var distName = $("#adminDistribution-distribution-select option:selected").val(); + var url = $("#adminDistributionModify-url").val(); + var address = $("#adminDistributionModify-address").val(); + var description = $("#adminDistributionModify-description").val(); + var distStatus = $("#adminDistributionModify-status option:selected").val(); + var syncPkgSvrUrl = $("#adminDistributionModify-syncPackageServer-url").val(); + var syncPkgSvrPeriod = $("#adminDistributionModify-syncPackageServer-period").val(); + var syncPkgSvrDescription = $("#adminDistributionModify-syncPackageServer-description").val(); if(distName == "" || url == "" || address == ""){ alert("You must input full data"); diff --git a/dibs-web/public/javascripts/admin-distribution.js b/dibs-web/public/javascripts/admin-distribution.js index 12e112b..7fd24de 100644 --- a/dibs-web/public/javascripts/admin-distribution.js +++ b/dibs-web/public/javascripts/admin-distribution.js @@ -27,32 +27,32 @@ Contributors: */ function adminDistributionInit() { - queryAllDistribution( function (xml) { - var oldDistName = $("#adminDistributionSelect option:selected").val(); + queryDistribution( function (xml) { + var oldDistName = $("#adminDistribution-distribution-select option:selected").val(); var find = false; var distributionList = $(xml).find("Data").find("DistributionName"); // remove old select options - $("#adminDistributionSelect").empty(); + $("#adminDistribution-distribution-select").empty(); distributionList.each(function(){ var name = $(this).text(); if( oldDistName == name ) { - $("#adminDistributionSelect").append(""); + $("#adminDistribution-distribution-select").append(""); find = true; } else { - $("#adminDistributionSelect").append(""); + $("#adminDistribution-distribution-select").append(""); } }); /* default distribution selection */ if(!find) { - $("#adminDistributionSelect option:eq(0)").attr("selected", "selected"); + $("#adminDistribution-distribution-select option:eq(0)").attr("selected", "selected"); } - $("#adminDistributionSelect").selectmenu('refresh'); + $("#adminDistribution-distribution-select").selectmenu('refresh'); // set distribution info adminDistributionSetInfo(); @@ -60,7 +60,7 @@ function adminDistributionInit() { } function adminDistributionSetInfo() { - var distName = $("#adminDistributionSelect option:selected").val(); + var distName = $("#adminDistribution-distribution-select option:selected").val(); queryDistributionInfo( distName, function (xml) { var data = $(xml).find("Data").find("DistributionInfo"); @@ -71,10 +71,10 @@ function adminDistributionSetInfo() { var distStatus = data.find("Status").text(); var distDescription = data.find("Description").text(); - $("#adminDistribution\\:packageServerUrl").text(url); - $("#adminDistribution\\:packageServerAddress").text(address); - $("#adminDistribution\\:distributionStatus").text(distStatus); - $("#adminDistribution\\:distributionDescription").text(distDescription); + $("#adminDistribution-url").text(url); + $("#adminDistribution-address").text(address); + $("#adminDistribution-status").text(distStatus); + $("#adminDistribution-description").text(distDescription); adminDistributionInitSyncPackageServer(syncPackageServer); }); @@ -83,7 +83,7 @@ function adminDistributionSetInfo() { function adminDistributionRemove() { var changeInfoList = []; var changeInfoItem; - var distName = $("#adminDistributionSelect option:selected").val(); + var distName = $("#adminDistribution-distribution-select option:selected").val(); changeInfoItem = {"DistributionName":distName}; changeInfoList.push(changeInfoItem); @@ -100,19 +100,19 @@ function adminDistributionRemove() { } function adminDistributionInitSyncPackageServer(serverInfo){ - $("#adminDistribution-SyncPackageServer").empty(); + $("#adminDistribution-syncPackageServer").empty(); - var info = '

Package server url : '+serverInfo.find("Url").text()+'

'; - info += '

Period : '+serverInfo.find("Period").text()+'

'; - info += '

Description : '+serverInfo.find("Description").text()+'

'; + var info = '

Package server url : '+serverInfo.find("Url").text()+'

'; + info += '

Period : '+serverInfo.find("Period").text()+'

'; + info += '

Description : '+serverInfo.find("Description").text()+'

'; - $("#adminDistribution-SyncPackageServer").append(info); + $("#adminDistribution-syncPackageServer").append(info); } function adminDistributionFullBuild() { var changeInfoList = []; var changeInfoItem; - var distName = $("#adminDistributionSelect option:selected").val(); + var distName = $("#adminDistribution-distribution-select option:selected").val(); changeInfoItem = {"DistributionName":distName}; changeInfoList.push(changeInfoItem); diff --git a/dibs-web/public/javascripts/admin-group-add.js b/dibs-web/public/javascripts/admin-group-add.js index 60c7a16..9811bd6 100644 --- a/dibs-web/public/javascripts/admin-group-add.js +++ b/dibs-web/public/javascripts/admin-group-add.js @@ -27,8 +27,8 @@ Contributors: */ function adminGroupAddInit() { - document.getElementById('adminGroupAddPopup-Name').value = ""; - document.getElementById('adminGroupAddPopup-Description').value = ""; + $("#adminGroupAdd-name").val(""); + $("#adminGroupAdd-description").val(""); queryAllProject( function(xml) { var fullProjectList = $(xml).find("Data").find("Project"); @@ -38,60 +38,37 @@ function adminGroupAddInit() { } function adminGroupAddGenerateProjectSelect(projectList) { - fieldset = document.getElementById('popup:addProjectCheckbox'); - - /* remove all table rows */ - while(fieldset.hasChildNodes()) - { - fieldset.removeChild(fieldset.firstChild); - } - - legend = document.createElement('legend'); - legend.innerHTML = "Project list"; - fieldset.appendChild(legend); + $("#adminGroupAdd-project").empty(); projectList.each(function(){ var projectName = $(this).find("Name").text(); var projectId = $(this).find("Id").text(); var projectDistName = $(this).find("DistName").text(); - var input = document.createElement('input'); - input.type = 'checkbox'; - input.id = 'popup:addGroupProjectCheckbox:'+projectId; - input.name = 'popup:addGroupProjectCheckbox'; - input.value = projectName; - - var label = document.createElement('label'); - label.setAttribute('for', 'popup:addGroupProjectCheckbox:'+projectId); - label.innerHTML = projectName + "[" + projectDistName + "]"; - - fieldset.appendChild(input); - fieldset.appendChild(label); + var input = ''; + var label = '
- +