flash messages in French + new icon for assets + ajax update for almost all forms
This commit is contained in:
parent
0671a55ef8
commit
533a4ee4aa
|
@ -5,6 +5,8 @@ module Admin
|
||||||
|
|
||||||
before_filter :set_collections_and_current_collection
|
before_filter :set_collections_and_current_collection
|
||||||
|
|
||||||
|
respond_to :json, :only => :update
|
||||||
|
|
||||||
def create
|
def create
|
||||||
create! { edit_admin_asset_collection_url(@asset_collection) }
|
create! { edit_admin_asset_collection_url(@asset_collection) }
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,6 +5,8 @@ module Admin
|
||||||
|
|
||||||
before_filter :set_content_type
|
before_filter :set_content_type
|
||||||
|
|
||||||
|
respond_to :json, :only => :update
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@contents = @content_type.list_or_group_contents
|
@contents = @content_type.list_or_group_contents
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,6 +5,8 @@ module Admin
|
||||||
|
|
||||||
actions :edit, :update
|
actions :edit, :update
|
||||||
|
|
||||||
|
respond_to :json, :only => :update
|
||||||
|
|
||||||
def update
|
def update
|
||||||
update! do |success, failure|
|
update! do |success, failure|
|
||||||
success.html { redirect_to edit_admin_current_site_url(new_host_if_subdomain_changed) }
|
success.html { redirect_to edit_admin_current_site_url(new_host_if_subdomain_changed) }
|
||||||
|
|
|
@ -3,6 +3,8 @@ module Admin
|
||||||
|
|
||||||
sections 'settings'
|
sections 'settings'
|
||||||
|
|
||||||
|
respond_to :json, :only => :update
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@layouts = current_site.layouts.order_by([[:name, :asc]])
|
@layouts = current_site.layouts.order_by([[:name, :asc]])
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,6 +5,8 @@ module Admin
|
||||||
|
|
||||||
actions :edit, :update
|
actions :edit, :update
|
||||||
|
|
||||||
|
respond_to :json, :only => :update
|
||||||
|
|
||||||
def update
|
def update
|
||||||
update! { edit_admin_my_account_url }
|
update! { edit_admin_my_account_url }
|
||||||
end
|
end
|
||||||
|
|
|
@ -29,29 +29,3 @@ module Admin
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# DEPRECATED
|
|
||||||
|
|
||||||
# def edit
|
|
||||||
# @page = current_site.pages.find(params[:id])
|
|
||||||
# end
|
|
||||||
#
|
|
||||||
# def create
|
|
||||||
# @page = current_site.pages.create(params[:page])
|
|
||||||
#
|
|
||||||
# respond_with(@page, :location => (edit_admin_page_url(@page) rescue nil))
|
|
||||||
# end
|
|
||||||
#
|
|
||||||
# def update
|
|
||||||
# @page = current_site.pages.find(params[:id])
|
|
||||||
# @page.update_attributes(params[:page])
|
|
||||||
#
|
|
||||||
# respond_with(@page, :location => edit_admin_page_url(@page))
|
|
||||||
# end
|
|
||||||
#
|
|
||||||
# def destroy
|
|
||||||
# @page = current_site.pages.find(params[:id])
|
|
||||||
# @page.destroy
|
|
||||||
#
|
|
||||||
# respond_with(@page, :alert => @page.errors.full_messages.first, :location => admin_pages_url)
|
|
||||||
# end
|
|
|
@ -3,6 +3,8 @@ module Admin
|
||||||
|
|
||||||
sections 'settings'
|
sections 'settings'
|
||||||
|
|
||||||
|
respond_to :json, :only => :update
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@snippets = current_site.snippets.order_by([[:name, :asc]])
|
@snippets = current_site.snippets.order_by([[:name, :asc]])
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ module Admin
|
||||||
|
|
||||||
sections 'settings', 'theme_assets'
|
sections 'settings', 'theme_assets'
|
||||||
|
|
||||||
respond_to :json, :only => :create
|
respond_to :json, :only => [:create, :update]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
assets = current_site.theme_assets.all
|
assets = current_site.theme_assets.all
|
||||||
|
|
|
@ -17,7 +17,7 @@ module Admin::BaseHelper
|
||||||
def admin_button_tag(text, url, options = {})
|
def admin_button_tag(text, url, options = {})
|
||||||
text = text.is_a?(Symbol) ? t(".#{text}") : text
|
text = text.is_a?(Symbol) ? t(".#{text}") : text
|
||||||
link_to(url, options) do
|
link_to(url, options) do
|
||||||
content_tag(:span, text)
|
content_tag(:em, escape_once(' ')) + text
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :add_asset, new_admin_asset_url(@asset_collection), :class => 'add'
|
= admin_button_tag :add_asset, new_admin_asset_url(@asset_collection), :class => 'new'
|
||||||
|
|
||||||
%p.no-items{ :style => "#{'display: none' unless @asset_collection.assets.empty? }" }
|
%p.no-items{ :style => "#{'display: none' unless @asset_collection.assets.empty? }" }
|
||||||
= t('.no_items', :url => new_admin_asset_url(@asset_collection))
|
= t('.no_items', :url => new_admin_asset_url(@asset_collection))
|
||||||
|
@ -28,6 +28,6 @@
|
||||||
|
|
||||||
= render 'admin/custom_fields/index', :form => f, :collection_name => 'assets'
|
= render 'admin/custom_fields/index', :form => f, :collection_name => 'assets'
|
||||||
|
|
||||||
= render 'admin/shared/form_actions', :delete_button => link_to(content_tag(:span, t('.destroy')), admin_asset_collection_url(@asset_collection), :confirm => t('admin.messages.confirm'), :method => :delete, :class => 'button small remove'), :button_label => :update
|
= render 'admin/shared/form_actions', :delete_button => link_to(content_tag(:em, escape_once(' ')) + t('.destroy'), admin_asset_collection_url(@asset_collection), :confirm => t('admin.messages.confirm'), :method => :delete, :class => 'button small remove'), :button_label => :update
|
||||||
|
|
||||||
= render 'admin/custom_fields/edit_field'
|
= render 'admin/custom_fields/edit_field'
|
|
@ -4,11 +4,11 @@
|
||||||
= render 'admin/shared/menu/assets'
|
= render 'admin/shared/menu/assets'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag t('admin.asset_collections.edit.add_asset'), new_admin_asset_url(@asset_collection), :class => 'add'
|
= admin_button_tag t('admin.asset_collections.edit.add_asset'), new_admin_asset_url(@asset_collection), :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
= semantic_form_for @asset, :url => admin_asset_url(@asset_collection, @asset), :html => { :multipart => true } do |form|
|
= semantic_form_for @asset, :url => admin_asset_url(@asset_collection, @asset), :html => { :multipart => true, :class => 'save-with-shortcut' } do |form|
|
||||||
|
|
||||||
= render 'form', :f => form
|
= render 'form', :f => form
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :show_items, admin_contents_url(@content_type.slug), :class => 'show'
|
= admin_button_tag :show_items, admin_contents_url(@content_type.slug), :class => 'show'
|
||||||
= admin_button_tag :new_item, new_admin_content_url(@content_type.slug), :class => 'show'
|
= admin_button_tag :new_item, new_admin_content_url(@content_type.slug), :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
%p= @content_type.description
|
%p= @content_type.description
|
||||||
|
|
||||||
= semantic_form_for @content, :as => :content, :url => admin_content_url(@content_type.slug, @content), :html => { :multipart => true } do |form|
|
= semantic_form_for @content, :as => :content, :url => admin_content_url(@content_type.slug, @content), :html => { :multipart => true, :class => 'save-with-shortcut' } do |form|
|
||||||
|
|
||||||
= render 'form', :f => form
|
= render 'form', :f => form
|
||||||
|
|
||||||
|
|
|
@ -24,4 +24,4 @@
|
||||||
= form_tag sort_admin_contents_path(@content_type.slug), :method => :put, :class => 'formtastic' do
|
= form_tag sort_admin_contents_path(@content_type.slug), :method => :put, :class => 'formtastic' do
|
||||||
= hidden_field_tag :order
|
= hidden_field_tag :order
|
||||||
|
|
||||||
= render 'admin/shared/form_actions', :delete_button => link_to(content_tag(:span, t('.destroy')), admin_content_type_url(@content_type), :confirm => t('admin.messages.confirm'), :method => :delete, :class => 'button small remove'), :button_label => :update
|
= render 'admin/shared/form_actions', :delete_button => link_to(content_tag(:em, escape_once(' ')) + t('.destroy'), admin_content_type_url(@content_type), :confirm => t('admin.messages.confirm'), :method => :delete, :class => 'button small remove'), :button_label => :update
|
|
@ -4,11 +4,11 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag t('.new_membership'), new_admin_membership_url, :class => 'add'
|
= admin_button_tag t('.new_membership'), new_admin_membership_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
= semantic_form_for @site, :url => admin_current_site_url do |f|
|
= semantic_form_for @site, :url => admin_current_site_url, :html => { :class => 'save-with-shortcut' } do |f|
|
||||||
|
|
||||||
= render 'form', :f => f
|
= render 'form', :f => f
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :new, new_admin_layout_url, :class => 'add'
|
= admin_button_tag :new, new_admin_layout_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
= semantic_form_for @layout, :url => admin_layout_url(@layout) do |form|
|
= semantic_form_for @layout, :url => admin_layout_url(@layout), :html => { :class => 'save-with-shortcut' } do |form|
|
||||||
|
|
||||||
= render 'form', :f => form
|
= render 'form', :f => form
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :new, new_admin_layout_url, :class => 'add'
|
= admin_button_tag :new, new_admin_layout_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag t('.new_site'), new_admin_site_url, :class => 'add'
|
= admin_button_tag t('.new_site'), new_admin_site_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
= semantic_form_for @account, :as => :my_account, :url => admin_my_account_url do |f|
|
= semantic_form_for @account, :as => :my_account, :url => admin_my_account_url, :html => { :class => 'save-with-shortcut' } do |f|
|
||||||
|
|
||||||
= f.foldable_inputs :name => :information, :style => 'display: none' do
|
= f.foldable_inputs :name => :information, :style => 'display: none' do
|
||||||
= f.input :name
|
= f.input :name
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
= render 'admin/shared/menu/contents'
|
= render 'admin/shared/menu/contents'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :new, new_admin_page_url, :class => 'add'
|
= admin_button_tag :new, new_admin_page_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag t('admin.snippets.index.new'), new_admin_snippet_url, :class => 'add'
|
= admin_button_tag t('admin.snippets.index.new'), new_admin_snippet_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
= semantic_form_for @snippet, :url => admin_snippet_url(@snippet) do |form|
|
= semantic_form_for @snippet, :url => admin_snippet_url(@snippet), :html => { :class => 'save-with-shortcut' } do |form|
|
||||||
|
|
||||||
= render 'form', :f => form
|
= render 'form', :f => form
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :new, new_admin_snippet_url, :class => 'add'
|
= admin_button_tag :new, new_admin_snippet_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag t('admin.theme_assets.index.new'), new_admin_theme_asset_url, :class => 'add'
|
= admin_button_tag t('admin.theme_assets.index.new'), new_admin_theme_asset_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help', :url => @theme_asset.source.url)
|
%p= t('.help', :url => @theme_asset.source.url)
|
||||||
|
|
||||||
= semantic_form_for @theme_asset, :url => admin_theme_asset_url(@theme_asset), :html => { :multipart => true } do |form|
|
= semantic_form_for @theme_asset, :url => admin_theme_asset_url(@theme_asset), :html => { :multipart => true, :class => 'save-with-shortcut' } do |form|
|
||||||
|
|
||||||
= render 'form', :f => form
|
= render 'form', :f => form
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
= render 'admin/shared/menu/settings'
|
= render 'admin/shared/menu/settings'
|
||||||
|
|
||||||
- content_for :buttons do
|
- content_for :buttons do
|
||||||
= admin_button_tag :new, new_admin_theme_asset_url, :class => 'add'
|
= admin_button_tag :new, new_admin_theme_asset_url, :class => 'new'
|
||||||
|
|
||||||
%p= t('.help')
|
%p= t('.help')
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
%h2= title
|
%h2= title
|
||||||
|
|
||||||
#local-actions-bar
|
#local-actions-bar
|
||||||
|
|
||||||
= yield :buttons
|
= yield :buttons
|
||||||
|
|
||||||
= yield
|
= yield
|
||||||
|
|
|
@ -110,13 +110,6 @@ fr:
|
||||||
show: voir
|
show: voir
|
||||||
help: "Le titre de la page est modifiable en cliquant dessus."
|
help: "Le titre de la page est modifiable en cliquant dessus."
|
||||||
ask_for_title: "Veuillez entrer le nouveau titre"
|
ask_for_title: "Veuillez entrer le nouveau titre"
|
||||||
messages:
|
|
||||||
successful_create: "La page a été créée avec succès."
|
|
||||||
successful_update: "La page a été mise à jour avec succès."
|
|
||||||
successful_destroy: "La page a été supprimée avec succès."
|
|
||||||
successful_sort: "Les pages ont été ordonnées avec succès."
|
|
||||||
failed_create: "La page n'a pas été créée."
|
|
||||||
failed_update: "La page n'a pas été mise à jour."
|
|
||||||
form:
|
form:
|
||||||
cache_strategy:
|
cache_strategy:
|
||||||
none: Aucun
|
none: Aucun
|
||||||
|
@ -141,12 +134,6 @@ fr:
|
||||||
new: nouveau gabarit
|
new: nouveau gabarit
|
||||||
layout:
|
layout:
|
||||||
updated_at: Mis à jour le
|
updated_at: Mis à jour le
|
||||||
messages:
|
|
||||||
successful_create: "Le gabarit a été crée avec succès."
|
|
||||||
successful_update: "Le gabarit a été mis à jour avec succès."
|
|
||||||
successful_destroy: "Le gabarit a été supprimé avec succès."
|
|
||||||
failed_create: "Le gabarit n'a pas été crée."
|
|
||||||
failed_update: "Le gabarit n'a pas été mis à jour."
|
|
||||||
|
|
||||||
snippets:
|
snippets:
|
||||||
index:
|
index:
|
||||||
|
@ -162,45 +149,27 @@ fr:
|
||||||
help: "Remplissez le formulaire ci-dessous pour mettre à jour votre snippet."
|
help: "Remplissez le formulaire ci-dessous pour mettre à jour votre snippet."
|
||||||
snippet:
|
snippet:
|
||||||
updated_at: Mis à jour le
|
updated_at: Mis à jour le
|
||||||
messages:
|
|
||||||
successful_create: "Le snippet a été crée avec succès."
|
|
||||||
successful_update: "Le snippet a été mis à jour avec succès."
|
|
||||||
successful_destroy: "Le snippet a été supprimé avec succès."
|
|
||||||
failed_create: "Le snippet n'a pas été crée."
|
|
||||||
failed_update: "Le snippet n'a pas été mis à jour."
|
|
||||||
|
|
||||||
sites:
|
sites:
|
||||||
new:
|
new:
|
||||||
title: "Nouveau site"
|
title: "Nouveau site"
|
||||||
help: "Remplissez le formulaire ci-dessous pour créer votre nouveau site."
|
help: "Remplissez le formulaire ci-dessous pour créer votre nouveau site."
|
||||||
messages:
|
|
||||||
successful_create: "Le site a été crée avec succès."
|
|
||||||
failed_create: "Le site n'a pas été crée."
|
|
||||||
|
|
||||||
current_sites:
|
current_sites:
|
||||||
edit:
|
edit:
|
||||||
new_membership: ajouter compte
|
new_membership: ajouter compte
|
||||||
help: "Le nom du site est modifiable en cliquant dessus."
|
help: "Le nom du site est modifiable en cliquant dessus."
|
||||||
ask_for_name: "Veuillez entrer le nouveau nom"
|
ask_for_name: "Veuillez entrer le nouveau nom"
|
||||||
messages:
|
|
||||||
successful_update: "Le site a été mis à jour avec succès."
|
|
||||||
failed_update: "Le site n'a pas été mis à jour."
|
|
||||||
|
|
||||||
memberships:
|
memberships:
|
||||||
new:
|
new:
|
||||||
title: "Ajout d'un compte"
|
title: "Ajout d'un compte"
|
||||||
help: "Donnez l'adresse email du compte à ajouter. S'il n'existe pas, vous serez redirigé(e) vers le formulaire de création d'un compte."
|
help: "Donnez l'adresse email du compte à ajouter. S'il n'existe pas, vous serez redirigé(e) vers le formulaire de création d'un compte."
|
||||||
messages:
|
|
||||||
successful_create: "Le compte a été ajouté avec succès."
|
|
||||||
failed_create: "Le compte n'a pas été ajouté."
|
|
||||||
|
|
||||||
accounts:
|
accounts:
|
||||||
new:
|
new:
|
||||||
title: Nouveau compte
|
title: Nouveau compte
|
||||||
help: "Remplissez le formulaire ci-dessous pour ajouter un nouveau compte."
|
help: "Remplissez le formulaire ci-dessous pour ajouter un nouveau compte."
|
||||||
messages:
|
|
||||||
successful_create: "Le compte a été crée avec succès."
|
|
||||||
failed_create: "Le compte n'a pas été crée."
|
|
||||||
|
|
||||||
my_accounts:
|
my_accounts:
|
||||||
edit:
|
edit:
|
||||||
|
@ -209,9 +178,6 @@ fr:
|
||||||
en: en Anglais
|
en: en Anglais
|
||||||
fr: en Français
|
fr: en Français
|
||||||
ask_for_name: "Veuillez entrer le nouveau nom"
|
ask_for_name: "Veuillez entrer le nouveau nom"
|
||||||
messages:
|
|
||||||
successful_update: "Mon compte a été mis à jour avec succès."
|
|
||||||
failed_update: "compte site n'a pas été mis à jour."
|
|
||||||
|
|
||||||
theme_assets:
|
theme_assets:
|
||||||
index:
|
index:
|
||||||
|
@ -234,12 +200,6 @@ fr:
|
||||||
images:
|
images:
|
||||||
title: Liste des images
|
title: Liste des images
|
||||||
no_items: "Il n'y a pas d'images."
|
no_items: "Il n'y a pas d'images."
|
||||||
messages:
|
|
||||||
successful_create: "Le fichier a été crée avec succès."
|
|
||||||
successful_update: "Le fichier a été mis à jour avec succès."
|
|
||||||
successful_destroy: "Le fichier a été supprimé avec succès."
|
|
||||||
failed_create: "Le fichier n'a pas été crée."
|
|
||||||
failed_update: "Le fichier n'a pas été mis à jour."
|
|
||||||
|
|
||||||
asset_collections:
|
asset_collections:
|
||||||
index:
|
index:
|
||||||
|
@ -256,12 +216,6 @@ fr:
|
||||||
destroy: supprimer collection
|
destroy: supprimer collection
|
||||||
no_items: "Il n'existe pas de médias. Vous pouvez commencer par créer un <a href='{{url}}'>ici</a>."
|
no_items: "Il n'existe pas de médias. Vous pouvez commencer par créer un <a href='{{url}}'>ici</a>."
|
||||||
ask_for_name: "Veuillez entrer le nouveau nom"
|
ask_for_name: "Veuillez entrer le nouveau nom"
|
||||||
messages:
|
|
||||||
successful_create: "La collection a été créée avec succès."
|
|
||||||
successful_update: "La collection a été mise à jour avec succès."
|
|
||||||
successful_destroy: "La collection a été supprimée avec succès."
|
|
||||||
failed_create: "La collection n'a pas été créée."
|
|
||||||
failed_update: "La collection n'a pas été mise à jour."
|
|
||||||
|
|
||||||
assets:
|
assets:
|
||||||
new:
|
new:
|
||||||
|
@ -270,12 +224,6 @@ fr:
|
||||||
edit:
|
edit:
|
||||||
title: "Edition média"
|
title: "Edition média"
|
||||||
help: "Remplissez le formulaire ci-dessous pour mettre à jour votre média."
|
help: "Remplissez le formulaire ci-dessous pour mettre à jour votre média."
|
||||||
messages:
|
|
||||||
successful_create: "Le média a été crée avec succès."
|
|
||||||
successful_update: "Le média a été mis à jour avec succès."
|
|
||||||
successful_destroy: "Le média a été supprimé avec succès."
|
|
||||||
failed_create: "Le média n'a pas été crée."
|
|
||||||
failed_update: "Le média n'a pas été mis à jour."
|
|
||||||
|
|
||||||
content_types:
|
content_types:
|
||||||
index:
|
index:
|
||||||
|
@ -292,12 +240,6 @@ fr:
|
||||||
order_by:
|
order_by:
|
||||||
updated_at: 'Par date de mise à jour'
|
updated_at: 'Par date de mise à jour'
|
||||||
position_in_list: Manuellement
|
position_in_list: Manuellement
|
||||||
messages:
|
|
||||||
successful_create: "Le modèle a été crée avec succès."
|
|
||||||
successful_update: "Le modèle a été mis à jour avec succès."
|
|
||||||
successful_destroy: "Le modèle a été supprimé avec succès."
|
|
||||||
failed_create: "Le modèle n'a pas été crée."
|
|
||||||
failed_update: "Le modèle n'a pas été mis à jour."
|
|
||||||
|
|
||||||
contents:
|
contents:
|
||||||
index:
|
index:
|
||||||
|
@ -315,12 +257,6 @@ fr:
|
||||||
title: '{{type}} — nouvel élément'
|
title: '{{type}} — nouvel élément'
|
||||||
edit:
|
edit:
|
||||||
title: '{{type}} — édition élément'
|
title: '{{type}} — édition élément'
|
||||||
messages:
|
|
||||||
successful_create: "L'élément a été crée avec succès."
|
|
||||||
successful_update: "L'élément a été mis à jour avec succès."
|
|
||||||
successful_destroy: "L'élément a été supprimé avec succès."
|
|
||||||
failed_create: "L'élément a été crée avec succès."
|
|
||||||
failed_update: "L'élément a été supprimé avec succès."
|
|
||||||
|
|
||||||
formtastic:
|
formtastic:
|
||||||
titles:
|
titles:
|
||||||
|
|
|
@ -3,10 +3,10 @@ en:
|
||||||
admin:
|
admin:
|
||||||
pages:
|
pages:
|
||||||
create:
|
create:
|
||||||
notice: "Page was successfully created"
|
notice: "Page was successfully created."
|
||||||
alert: "Page was not created."
|
alert: "Page was not created."
|
||||||
update:
|
update:
|
||||||
notice: "Page was successfully updated"
|
notice: "Page was successfully updated."
|
||||||
alert: "Page was not updated."
|
alert: "Page was not updated."
|
||||||
sort:
|
sort:
|
||||||
notice: "Pages were successfully sorted."
|
notice: "Pages were successfully sorted."
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
fr:
|
||||||
|
flash:
|
||||||
|
admin:
|
||||||
|
pages:
|
||||||
|
create:
|
||||||
|
notice: "La page a été créée avec succès."
|
||||||
|
alert: "La page n'a pas été créée."
|
||||||
|
update:
|
||||||
|
notice: "La page a été mise à jour avec succès."
|
||||||
|
alert: "La page n'a pas été mise à jour."
|
||||||
|
sort:
|
||||||
|
notice: "Les pages ont été ordonnées avec succès."
|
||||||
|
destroy:
|
||||||
|
notice: "La page a été supprimée avec succès."
|
||||||
|
|
||||||
|
contents:
|
||||||
|
create:
|
||||||
|
notice: "L'élément a été crée avec succès."
|
||||||
|
alert: "L'élément a été crée avec succès."
|
||||||
|
update:
|
||||||
|
notice: "L'élément a été mis à jour avec succès."
|
||||||
|
alert: "L'élément n'a pas été mis à jour."
|
||||||
|
sort:
|
||||||
|
notice: "Les éléments ont été ordonnés avec succès."
|
||||||
|
destroy:
|
||||||
|
notice: "L'élément a été supprimé avec succès."
|
||||||
|
|
||||||
|
content_types:
|
||||||
|
create:
|
||||||
|
notice: "Le modèle a été crée avec succès."
|
||||||
|
alert: "Le modèle n'a pas été crée."
|
||||||
|
update:
|
||||||
|
notice: "Le modèle a été mis à jour avec succès."
|
||||||
|
alert: "Le modèle n'a pas été mis à jour."
|
||||||
|
destroy:
|
||||||
|
notice: "Le modèle a été supprimé avec succès."
|
||||||
|
|
||||||
|
current_sites:
|
||||||
|
update:
|
||||||
|
notice: "Mon site a été mis à jour avec succès."
|
||||||
|
alert: "Mon site n'a pas été mis à jour."
|
||||||
|
|
||||||
|
layouts:
|
||||||
|
create:
|
||||||
|
notice: "Le gabarit a été crée avec succès."
|
||||||
|
alert: "Le gabarit n'a pas été crée."
|
||||||
|
update:
|
||||||
|
notice: "Le gabarit a été mis à jour avec succès."
|
||||||
|
alert: "Le gabarit n'a pas été mis à jour."
|
||||||
|
destroy:
|
||||||
|
notice: "Le gabarit a été supprimé avec succès."
|
||||||
|
|
||||||
|
snippets:
|
||||||
|
create:
|
||||||
|
notice: "Le snippet a été crée avec succès."
|
||||||
|
alert: "Le snippet n'a pas été crée."
|
||||||
|
update:
|
||||||
|
notice: "Le snippet a été mis à jour avec succès."
|
||||||
|
alert: "Le snippet n'a pas été mis à jour."
|
||||||
|
destroy:
|
||||||
|
notice: "Le snippet a été supprimé avec succès."
|
||||||
|
|
||||||
|
accounts:
|
||||||
|
create:
|
||||||
|
notice: "Le compte a été crée avec succès."
|
||||||
|
alert: "Le compte n'a pas été crée."
|
||||||
|
|
||||||
|
my_accounts:
|
||||||
|
update:
|
||||||
|
notice: "Mon compte a été mis à jour avec succès."
|
||||||
|
alert: "Mon compte n'a pas été mis à jour."
|
||||||
|
|
||||||
|
sites:
|
||||||
|
create:
|
||||||
|
notice: "Le site a été crée avec succès."
|
||||||
|
alert: "Le site n'a pas été crée."
|
||||||
|
destroy:
|
||||||
|
notice: "Le site a été supprimé avec succès."
|
||||||
|
|
||||||
|
memberships:
|
||||||
|
create:
|
||||||
|
notice: "Le compte a été ajouté avec succès."
|
||||||
|
alert: "Le compte n'a pas été ajouté."
|
||||||
|
already_created: "Le compte a déjà été ajouté pour ce site."
|
||||||
|
|
||||||
|
asset_collections:
|
||||||
|
create:
|
||||||
|
notice: "La collection a été créée avec succès."
|
||||||
|
alert: "La collection n'a pas été créée."
|
||||||
|
update:
|
||||||
|
notice: "La collection a été mise à jour avec succès."
|
||||||
|
alert: "La collection n'a pas été mise à jour."
|
||||||
|
destroy:
|
||||||
|
notice: "La collection a été supprimée avec succès."
|
||||||
|
|
||||||
|
assets:
|
||||||
|
create:
|
||||||
|
notice: "Le média a été crée avec succès."
|
||||||
|
alert: "Le média n'a pas été crée."
|
||||||
|
update:
|
||||||
|
notice: "Le média a été mis à jour avec succès."
|
||||||
|
alert: "Le média n'a pas été mis à jour."
|
||||||
|
|
||||||
|
theme_assets:
|
||||||
|
create:
|
||||||
|
notice: "Le fichier a été crée avec succès."
|
||||||
|
alert: "Le fichier n'a pas été crée."
|
||||||
|
update:
|
||||||
|
notice: "Le fichier a été mis à jour avec succès."
|
||||||
|
alert: "Le fichier n'a pas été mis à jour."
|
||||||
|
destroy:
|
||||||
|
notice: "Le fichier a été supprimé avec succès."
|
||||||
|
|
||||||
|
custom_fields:
|
||||||
|
update:
|
||||||
|
alert: "Champ non mis à jour."
|
9
doc/TODO
9
doc/TODO
|
@ -1,12 +1,7 @@
|
||||||
BOARD:
|
BOARD:
|
||||||
|
|
||||||
- refactor slugify method (use parameterize + create a module)
|
- refactor slugify method (use parameterize + create a module)
|
||||||
|
|
||||||
- save layout / snippet / page / stylesheet / javascript with CMD + S (ajax)
|
|
||||||
- change action icons according to the right action [Sacha]
|
|
||||||
- page redirection (option)
|
|
||||||
- send email when new content added thru api
|
- send email when new content added thru api
|
||||||
- flash messages in French
|
|
||||||
|
|
||||||
BACKLOG:
|
BACKLOG:
|
||||||
|
|
||||||
|
@ -30,6 +25,7 @@ NICE TO HAVE:
|
||||||
- theme asset picker when editing layout
|
- theme asset picker when editing layout
|
||||||
- asset picker (content instance)
|
- asset picker (content instance)
|
||||||
- page with regexp url ?
|
- page with regexp url ?
|
||||||
|
- page redirection (option)
|
||||||
|
|
||||||
DONE:
|
DONE:
|
||||||
|
|
||||||
|
@ -60,3 +56,6 @@ x [bug] varnish can not be refreshed in heroku so "max-age" has to be disabled =
|
||||||
x "remember me" should always be enabled
|
x "remember me" should always be enabled
|
||||||
x sitemap
|
x sitemap
|
||||||
x refactoring admin crud (pages + layouts + snippets)
|
x refactoring admin crud (pages + layouts + snippets)
|
||||||
|
x flash messages in French
|
||||||
|
x save layout / snippet / page / stylesheet / javascript with CMD + S (ajax)
|
||||||
|
x change action icons according to the right action [Sacha]
|
|
@ -12,7 +12,7 @@ module Locomotive
|
||||||
if get?
|
if get?
|
||||||
display resource
|
display resource
|
||||||
elsif has_errors?
|
elsif has_errors?
|
||||||
display({ :errors => resource.errors, :alert => flash[:alert] }, :status => :unprocessable_entity)
|
display({ :errors => resource.errors, :model => controller.send(:resource_instance_name), :alert => controller.flash[:alert] })
|
||||||
elsif post?
|
elsif post?
|
||||||
display resource, :status => :created, :location => resource_location
|
display resource, :status => :created, :location => resource_location
|
||||||
else
|
else
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 704 B |
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -8,19 +8,8 @@ jQuery.fn.saveWithShortcut = function() {
|
||||||
form.find('li.error').removeClass('error');
|
form.find('li.error').removeClass('error');
|
||||||
}
|
}
|
||||||
|
|
||||||
// var updateFromWyMeditor = function() {
|
|
||||||
// if (jQuery.wymeditors == undefined)
|
|
||||||
// return;
|
|
||||||
// var i = 0;
|
|
||||||
// while (jQuery.wymeditors(i) != undefined) {
|
|
||||||
// var editor = jQuery.wymeditors(i);
|
|
||||||
// editor.box().prev().val(editor.html());
|
|
||||||
// i++;
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
|
|
||||||
var updateFromCodeMirror = function() {
|
var updateFromCodeMirror = function() {
|
||||||
if (CodeMirror == undefined)
|
if (typeof CodeMirror == undefined)
|
||||||
return;
|
return;
|
||||||
jQuery.each(CodeMirrorEditors, function() {
|
jQuery.each(CodeMirrorEditors, function() {
|
||||||
this.el.val(this.editor.getCode());
|
this.el.val(this.editor.getCode());
|
||||||
|
@ -38,16 +27,15 @@ jQuery.fn.saveWithShortcut = function() {
|
||||||
|
|
||||||
if (data.alert != undefined) {
|
if (data.alert != undefined) {
|
||||||
$.growl('error', data.alert);
|
$.growl('error', data.alert);
|
||||||
for (var i = 0; i < data.errors.length; i++) {
|
for (var field in data.errors) {
|
||||||
var type = data.errors[i][0], value = data.errors[i][1];
|
var error = data.errors[field];
|
||||||
var node = form.find('li:has(#' + data.model + '_' + type + ')');
|
var node = form.find('li:has(#' + data.model + '_' + field + ')');
|
||||||
node.addClass('error');
|
node.addClass('error');
|
||||||
node.append("<p class='inline-errors'>" + value + "</p>");
|
node.append("<p class='inline-errors'>" + error + "</p>");
|
||||||
}
|
}
|
||||||
form.find('li.error input').eq(0).focus();
|
form.find('li.error input').eq(0).focus();
|
||||||
} else {
|
} else {
|
||||||
$.growl('success', data.notice);
|
$.growl('success', data.notice);
|
||||||
// $.publish('form.saved.success', [data]);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,7 +44,6 @@ jQuery.fn.saveWithShortcut = function() {
|
||||||
|
|
||||||
jQuery(document).bind('keypress.shortcut', function(event) {
|
jQuery(document).bind('keypress.shortcut', function(event) {
|
||||||
if (!(event.which == 115 && (event.ctrlKey || event.metaKey))) return true;
|
if (!(event.which == 115 && (event.ctrlKey || event.metaKey))) return true;
|
||||||
// updateFromWyMeditor();
|
|
||||||
updateFromCodeMirror();
|
updateFromCodeMirror();
|
||||||
save(form);
|
save(form);
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
|
@ -37,31 +37,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.button.small {
|
.button.small {
|
||||||
background: transparent url(/images/admin/buttons/action-left.png) no-repeat left -40px;
|
background: #ebedf4;
|
||||||
|
outline: none;
|
||||||
|
-moz-border-radius : 10px;
|
||||||
|
-webkit-border-radius: 10px;
|
||||||
color: #787a89;
|
color: #787a89;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
padding: 0px 0px 0px 12px;
|
padding: 0px 12px 0px 12px;
|
||||||
color: #8B8D9A !important;
|
color: #8B8D9A !important;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
|
||||||
|
|
||||||
.button.small span {
|
|
||||||
background-image: url(/images/admin/buttons/action-right.png);
|
|
||||||
text-shadow: 1px 1px 1px #fff;
|
|
||||||
padding: 0px 12px 10px 0px;
|
|
||||||
top: 0px;
|
|
||||||
color: #8B8D9A;
|
color: #8B8D9A;
|
||||||
|
text-shadow: 1px 1px 1px #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button.small.add {
|
.button.small.add {
|
||||||
padding-left: 24px;
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.button.remove, .button.remove span {
|
.button.remove {
|
||||||
color: #ff092c !important;
|
color: #ff092c !important;
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button.remove:hover span { text-decoration: underline; }
|
.button.remove:hover { text-decoration: underline; }
|
|
@ -105,32 +105,40 @@ body {
|
||||||
|
|
||||||
#content #local-actions-bar {
|
#content #local-actions-bar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 15px;
|
top: 13px;
|
||||||
right: 15px;
|
right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content #local-actions-bar a {
|
#content #local-actions-bar a {
|
||||||
display: block;
|
position: relative;
|
||||||
float: left;
|
padding: 2px 10px 3px 31px;
|
||||||
height: 20px;
|
|
||||||
color: #8b8d9a;
|
color: #8b8d9a;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
padding-left: 24px;
|
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
background: transparent url(/images/admin/buttons/action-left.png) no-repeat 0 0;
|
background-color: #ebedf4;
|
||||||
outline: none;
|
outline: none;
|
||||||
|
-moz-border-radius : 10px;
|
||||||
|
-webkit-border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#content #local-actions-bar a:hover span { text-decoration: underline; }
|
#content #local-actions-bar a:hover { text-decoration: underline; }
|
||||||
|
|
||||||
#content #local-actions-bar a span {
|
#content #local-actions-bar a em {
|
||||||
display: inline-block;
|
position: absolute;
|
||||||
height: 13px;
|
display: block;
|
||||||
background: transparent url(/images/admin/buttons/action-right.png) no-repeat right 0;
|
top: 5px;
|
||||||
padding: 1px 10px 8px 2px;
|
left: 10px;
|
||||||
|
height: 16px;
|
||||||
|
width: 16px;
|
||||||
|
background: transparent url(/images/admin/icons/actions.png) no-repeat 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#content #local-actions-bar a.show em { background-position: 0 0; }
|
||||||
|
#content #local-actions-bar a.edit em { background-position: 0 -16px; top: 2px; left: 12px; }
|
||||||
|
#content #local-actions-bar a.download em { background-position: 0 -32px; }
|
||||||
|
#content #local-actions-bar a.new em { background-position: 0 -48px; left: 13px; }
|
||||||
|
|
||||||
/* ___ footer ___ */
|
/* ___ footer ___ */
|
||||||
|
|
||||||
#footer {
|
#footer {
|
||||||
|
|
|
@ -48,12 +48,12 @@ body.contents ul#menu li.contents a em { background-position: 0 -12px; }
|
||||||
body.settings ul#menu li.contents { background-position: 0 -80px; }
|
body.settings ul#menu li.contents { background-position: 0 -80px; }
|
||||||
body.settings ul#menu li.contents a { background-position: 0 -80px; }
|
body.settings ul#menu li.contents a { background-position: 0 -80px; }
|
||||||
|
|
||||||
ul#menu li.assets { background: url(/images/admin/menu/left.png) no-repeat 0 -40px; padding-left: 35px; }
|
ul#menu li.assets { background: url(/images/admin/menu/left.png) no-repeat 0 -40px; padding-left: 40px; }
|
||||||
ul#menu li.assets a em { background: transparent url(/images/admin/menu/icons/settings.png) no-repeat 0 0; height: 14px; }
|
ul#menu li.assets a em { background: transparent url(/images/admin/menu/icons/assets.png) no-repeat 0 0; height: 20px; width: 20px; float: left; top: 0px; }
|
||||||
body.contents ul#menu li.assets { background-position: 0 0px; }
|
body.contents ul#menu li.assets { background-position: 0 0px; }
|
||||||
body.assets ul#menu li.assets { background-position: 0 -80px; }
|
body.assets ul#menu li.assets { background-position: 0 -80px; }
|
||||||
body.assets ul#menu li.assets a { background-position: right -80px; color: white; text-shadow: none; }
|
body.assets ul#menu li.assets a { background-position: right -80px; color: white; text-shadow: none; }
|
||||||
body.assets ul#menu li.assets a em { background-position: 0 -15px; }
|
body.assets ul#menu li.assets a em { background-position: 0 -20px; }
|
||||||
|
|
||||||
ul#menu li.assets { background: url(/images/admin/menu/left.png) no-repeat 0 -40px; padding-left: 35px; }
|
ul#menu li.assets { background: url(/images/admin/menu/left.png) no-repeat 0 -40px; padding-left: 35px; }
|
||||||
ul#menu li.assets a { background: url(/images/admin/menu/right.png) no-repeat right 0px; }
|
ul#menu li.assets a { background: url(/images/admin/menu/right.png) no-repeat right 0px; }
|
||||||
|
|
|
@ -26,29 +26,30 @@ describe Membership do
|
||||||
before(:each) do
|
before(:each) do
|
||||||
@membership = Factory.build(:membership, :site => Factory.build(:site))
|
@membership = Factory.build(:membership, :site => Factory.build(:site))
|
||||||
@account = Factory.build(:account)
|
@account = Factory.build(:account)
|
||||||
|
@account.stubs(:save).returns(true)
|
||||||
Account.stubs(:where).returns([@account])
|
Account.stubs(:where).returns([@account])
|
||||||
Account.stubs(:find).returns(@account)
|
Account.stubs(:find).returns(@account)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should tell error' do
|
it 'should tell error' do
|
||||||
@membership.action_to_take.should == :error
|
@membership.process!.should == :error
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should tell we need to create a new account' do
|
it 'should tell we need to create a new account' do
|
||||||
Account.stubs(:where).returns([])
|
Account.stubs(:where).returns([])
|
||||||
@membership.email = 'homer@simpson'
|
@membership.email = 'homer@simpson'
|
||||||
@membership.action_to_take.should == :create_account
|
@membership.process!.should == :create_account
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should tell nothing to do' do
|
it 'should tell nothing to do' do
|
||||||
@membership.email = 'bart@simpson.net'
|
@membership.email = 'bart@simpson.net'
|
||||||
@membership.site.stubs(:memberships).returns([@membership, @membership])
|
@membership.site.stubs(:memberships).returns([@membership, @membership])
|
||||||
@membership.action_to_take.should == :nothing
|
@membership.process!.should == :nothing
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should tell membership has to be saved' do
|
it 'should tell membership has to be saved' do
|
||||||
@membership.email = 'bart@simpson.net'
|
@membership.email = 'bart@simpson.net'
|
||||||
@membership.action_to_take.should == :save_it
|
@membership.process!.should == :save_it
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue