diff --git a/mailing_lists/app/controllers/mailing_lists_controller.rb b/mailing_lists/app/controllers/mailing_lists_controller.rb index 1aa3c21a6..d4d2bf7e0 100644 --- a/mailing_lists/app/controllers/mailing_lists_controller.rb +++ b/mailing_lists/app/controllers/mailing_lists_controller.rb @@ -57,7 +57,12 @@ class MailingListsController < ApplicationController end def destroy - @mailing_list.update_attribute :status, MailingList::STATUS_TO_BE_DELETED + case @mailing_list.status + when MailingList::STATUS_REQUESTED + @mailing_list.destroy + when MailingList::STATUS_CREATED + @mailing_list.update_attribute :status, MailingList::STATUS_TO_BE_DELETED + end redirect_to :controller => 'projects', :action => 'settings', :tab => 'mailing-lists', :id => @project end diff --git a/mailing_lists/app/models/mailing_list.rb b/mailing_lists/app/models/mailing_list.rb index 101044677..8b65cbfd4 100644 --- a/mailing_lists/app/models/mailing_list.rb +++ b/mailing_lists/app/models/mailing_list.rb @@ -21,9 +21,10 @@ class MailingList < ActiveRecord::Base belongs_to :project belongs_to :admin, :class_name => 'User', :foreign_key => 'admin_id' has_many :messages, :class_name => 'MailingMessage', :dependent => :delete_all - + validates_presence_of :name, :description, :password validates_confirmation_of :password + validates_format_of :name, :with => /^[a-z0-9\-]+$/i STATUSES = { (STATUS_REQUESTED = 1) => :mailing_list_status_requested, diff --git a/mailing_lists/app/views/mailing_lists/_form.rhtml b/mailing_lists/app/views/mailing_lists/_form.rhtml index 5daba6f52..537a7230c 100644 --- a/mailing_lists/app/views/mailing_lists/_form.rhtml +++ b/mailing_lists/app/views/mailing_lists/_form.rhtml @@ -2,9 +2,8 @@
-

<%= f.text_field :name, :size => 25, :required => true %>

+

<%= f.text_field :name, :size => 25, :required => true %> @<%= Setting.mailing_lists_domain %>

<%= f.text_field :description, :size => 60, :required => true %>

-

<%= f.check_box :is_public %>

<%= f.select :admin_id, @project.users.collect {|p| [p.name, p.id]}, :required => true %>

<%= f.password_field :password, :size => 25, :required => true %>

<%= f.password_field :password_confirmation, :size => 25, :required => true %>

diff --git a/mailing_lists/app/views/projects/settings.rhtml b/mailing_lists/app/views/projects/settings.rhtml index 8bcbf2b00..338755de8 100644 --- a/mailing_lists/app/views/projects/settings.rhtml +++ b/mailing_lists/app/views/projects/settings.rhtml @@ -62,17 +62,16 @@