Skip to content

Commit

Permalink
[webui] New user home pages, user/group management, small front-page …
Browse files Browse the repository at this point in the history
…changes

Conflicts:
	src/webui/app/assets/stylesheets/application.scss
  • Loading branch information
hennevogel authored and adrianschroeter committed Feb 28, 2013
1 parent ebc803c commit d0f482b
Show file tree
Hide file tree
Showing 52 changed files with 782 additions and 484 deletions.
1 change: 0 additions & 1 deletion src/api/app/controllers/person_controller.rb
Expand Up @@ -170,7 +170,6 @@ def internal_register
logger.debug( "register XML: #{request.raw_post}" )

login = xml.elements["/unregisteredperson/login"].text
logger.debug("Found login #{login}")
realname = xml.elements["/unregisteredperson/realname"].text
email = xml.elements["/unregisteredperson/email"].text
password = xml.elements["/unregisteredperson/password"].text
Expand Down
14 changes: 8 additions & 6 deletions src/webui/app/assets/javascripts/bento/script.js
Expand Up @@ -126,18 +126,19 @@ $(document).ready(function() {
$('.dropdown-menu-content').hide(); // hide dropdown-menu

$('.dropdown-menu').click(function() {
if ($(".dropdown-menu-content").is(":hidden")) {
if ($(this).next(".dropdown-menu-content").is(":hidden")) {
// console.log('SLIDE DOWN');
if (this.id) { // if ID is set use this ID
var objectID = this.id;
// console.log('true');
// console.log(objectID);
// console.log('objectID: ' + objectID);
} else { // if no ID is set create one
var date = new Date();
var objectID = $(this).attr('class') + '-' + date.getTime(); // make unique id
$(this).attr('id', objectID);
}
dropDownMenu(objectID);
} else {
// console.log('SLIDE UP');
slideupFast('.dropdown-menu-content');
}
return false;
Expand All @@ -164,10 +165,10 @@ $(document).ready(function() {
$("#"+trigger_id).next('ul').attr('id', dropDownMenuID);
};

$("#"+dropDownMenuID).insertAfter('#footer');
$("#"+dropDownMenuID).insertAfter('#trigger_id');
$("#"+dropDownMenuID).css({
top: menuPosY,
left: menuPosX
// top: menuPosY,
// left: menuPosX
}).slideDown('fast');

return true;
Expand All @@ -181,6 +182,7 @@ $(document).ready(function() {

function slideupFast (e) {
$(e).slideUp('fast');
$(e).hide();
return true;
}

Expand Down
36 changes: 33 additions & 3 deletions src/webui/app/assets/javascripts/project.js
@@ -1,5 +1,6 @@
function renderPackagesTable(packages)
function renderPackagesTable(packages, length)
{
length = (typeof length === "undefined") ? 25 : length;
var packageurl = $("#packages_table_wrapper").data("url");
$("#packages_table_wrapper").html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="packages_table"></table>' );
$("#packages_table").dataTable( {"aaData": packages,
Expand All @@ -15,8 +16,9 @@ function renderPackagesTable(packages)
});
}

function renderProjectsTable()
function renderProjectsTable(length)
{
length = (typeof length === "undefined") ? 25 : length;
var projects = main_projects;
if (!$('#excludefilter').is(":checked"))
projects = projects.concat(excl_projects);
Expand All @@ -31,10 +33,38 @@ function renderProjectsTable()
var url = projecturl.replace(/REPLACEIT/, encodeURIComponent(obj.aData[0]));
return '<a href="' + url +'">' + obj.aData[0] + '</a>';
}
}, { "sTitle": "Title" } ]
}, { "sTitle": "Title" } ],
"iDisplayLength": length
});
}

function renderPackagesProjectsTable(packages, length)
{
length = (typeof length === "undefined") ? 25 : length;
var packageurl = $("#packages_projects_table_wrapper").data("url");
$("#packages_projects_table_wrapper").html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="packages_projects_table"></table>' );
$("#packages_projects_table").dataTable(
{
"aaData": packages,
"bPaginate": packages.length > 12,
"aoColumns": [
{
"sTitle": "Package",
"fnRender": function ( obj ) {
var url1 = packageurl.replace(/REPLACEPKG/, encodeURIComponent(obj.aData[0]));
var url = url1.replace(/REPLACEPRJ/, encodeURIComponent(obj.aData[1]));
return '<a href="' + url +'">' + obj.aData[0] + '</a>';
}
},
{
"sTitle": "Project"
}],
"iDisplayLength": length
});
}



function autocomplete_repositories(project_name)
{
$('#loader-repo').show();
Expand Down
2 changes: 2 additions & 0 deletions src/webui/app/assets/stylesheets/application.scss
Expand Up @@ -20,6 +20,8 @@
@import "package";
@import "project";
@import "search";
@import "jquery.tooltip";
@import "home";
@import "codemirror";
@import "codemirror/modes/rpm-spec";
@import "cm2/toolbars";
Expand Down
3 changes: 3 additions & 0 deletions src/webui/app/assets/stylesheets/bento/base.css
Expand Up @@ -219,6 +219,9 @@ h2.box-header, h2.box-subheader{text-indent:10px;font-size:1em;}
.header-tabs a{display:inline-block;min-height:23px;margin:0px 0.5em -0.3em;padding-top:0.3em;}
.header-tabs li.selected{background:#f6f6f6 url('images/gradient-dark.png') repeat-x scroll 0 -10px;background:#333 url('images/gradient-dark.png') repeat-x scroll 0 -10px;background:white url('images/gradient-dark-nav.png') repeat-x scroll bottom left;border-color:#ccc;}
.header-tabs li.selected a{color:#fff;text-shadow:none;}
.header-tabs li.ui-state-active{background:#f6f6f6 url('images/gradient-dark.png') repeat-x scroll 0 -10px;background:#333 url('images/gradient-dark.png') repeat-x scroll 0 -10px;background:white url('images/gradient-dark-nav.png') repeat-x scroll bottom left;border-color:#ccc;}
.header-tabs li.ui-state-active a{color:#fff;text-shadow:none;}

.aside ul{list-style:none inside;}
.aside ul li{margin-left:0; line-height:100%;}
#display #lp-pr-image{margin-top:42px;margin-left:150px;}
Expand Down
18 changes: 18 additions & 0 deletions src/webui/app/assets/stylesheets/home.css.scss
@@ -0,0 +1,18 @@
#home-username {
color: lightgrey;
}

#userinfo {
min-height: 420px;
}

.ui-tabs {
margin-top: -10px;
}

.home-avatar {
display: block;
margin-left: auto;
margin-right: auto;
}

19 changes: 19 additions & 0 deletions src/webui/app/assets/stylesheets/style.scss
Expand Up @@ -448,3 +448,22 @@ $icons-sprite-dimensions:true;
margin-left: 0px;
margin-right: 0px;
}

.sign-up input {
padding: 8px 8px;
}

.news-sender {
margin-left: 5px;
}

.news-message {
margin-top: 4px;
margin-bottom: 20px;
margin-left: 22px;
padding: 5px;
}

.news-message span {
float: right;
}
17 changes: 13 additions & 4 deletions src/webui/app/controllers/configuration_controller.rb
Expand Up @@ -13,9 +13,18 @@ def connect_instance

def users
@users = []
Person.find_cached(:all).each do |u|
person = Person.find_cached(u.value('name'))
@users << person if person
@deleted_users = []
@unconfirmed_users = []
@locked_users = []
Person.find(:all).each do |u|
person = Person.find(u.value('name'))
case person.state
when "deleted" then @deleted_users << person if person
when "unconfirmed" then @unconfirmed_users << person if person
when "locked" then @locked_users << person if person
else
@users << person if person
end
end
end

Expand Down Expand Up @@ -62,7 +71,7 @@ def save_instance
end

def update_configuration
if ! (params[:title] || params[:target_project])
if ! (params[:title] || params[:description])
flash[:error] = "Missing arguments (title or description)"
redirect_back_or_to :action => 'index' and return
end
Expand Down
37 changes: 25 additions & 12 deletions src/webui/app/controllers/group_controller.rb
Expand Up @@ -2,26 +2,39 @@ class GroupController < ApplicationController

include ApplicationHelper

before_filter :overwrite_group, :only => [:edit]

def autocomplete
required_parameters :term
render :json => Group.list(params[:term])
end

def index
@groups = []
Group.find_cached(:all).each do |entry|
group = Group.find_cached(entry.value('name'))
@groups << group if group
end
end

def show
required_parameters :id
@group = Group.find_cached(params[:id])
required_parameters :group
@group = Group.find_cached(params[:group])
unless @group
flash[:error] = "Group '#{params[:id]}' does not exist"
redirect_back_or_to :action => 'index' and return
flash[:error] = "Group '#{params[:group]}' does not exist"
redirect_back_or_to :controller => 'main', :action => 'index' and return
end
end

def add
end

def edit
@roles = Role.global_roles
end

def save
end

def overwrite_group
@displayed_group = @group
group = find_cached(Group, params['group'] ) if params['group'] && !params['group'].empty?
@displayed_group = group if group
end
private :overwrite_group



end
17 changes: 11 additions & 6 deletions src/webui/app/controllers/home_controller.rb
Expand Up @@ -7,6 +7,8 @@ class HomeController < ApplicationController
before_filter :overwrite_user, :only => [:index, :my_work, :requests, :list_my]

def index
list_my
my_work
end

def icon
Expand Down Expand Up @@ -71,13 +73,16 @@ def home_project

def list_my
@displayed_user.free_cache if discard_cache?
@iprojects = @displayed_user.involved_projects.each.map {|x| x.name}.uniq.sort
@ipackages = Hash.new
pkglist = @displayed_user.involved_packages.each.reject {|x| @iprojects.include?(x.project)}
pkglist.sort(&@displayed_user.method('packagesorter')).each do |pack|
@ipackages[pack.project] ||= Array.new
@ipackages[pack.project] << pack.name if !@ipackages[pack.project].include? pack.name
@iprojects = @displayed_user.involved_projects.each.collect! do |x|
ret =[]
ret << x.name
if x.to_hash['title'].class == Xmlhash::XMLHash
ret << "No title set"
else
ret << x.to_hash['title']
end
end
@ipackages = @displayed_user.involved_packages.each.map {|x| [x.name, x.project]}
end

def remove_watched_project
Expand Down

0 comments on commit d0f482b

Please sign in to comment.