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
|
||||
|
||||
respond_to :json, :only => :update
|
||||
|
||||
def create
|
||||
create! { edit_admin_asset_collection_url(@asset_collection) }
|
||||
end
|
||||
|
@ -4,6 +4,8 @@ module Admin
|
||||
sections 'contents'
|
||||
|
||||
before_filter :set_content_type
|
||||
|
||||
respond_to :json, :only => :update
|
||||
|
||||
def index
|
||||
@contents = @content_type.list_or_group_contents
|
||||
|
@ -5,6 +5,8 @@ module Admin
|
||||
|
||||
actions :edit, :update
|
||||
|
||||
respond_to :json, :only => :update
|
||||
|
||||
def update
|
||||
update! do |success, failure|
|
||||
success.html { redirect_to edit_admin_current_site_url(new_host_if_subdomain_changed) }
|
||||
|
@ -3,6 +3,8 @@ module Admin
|
||||
|
||||
sections 'settings'
|
||||
|
||||
respond_to :json, :only => :update
|
||||
|
||||
def index
|
||||
@layouts = current_site.layouts.order_by([[:name, :asc]])
|
||||
end
|
||||
|
@ -5,6 +5,8 @@ module Admin
|
||||
|
||||
actions :edit, :update
|
||||
|
||||
respond_to :json, :only => :update
|
||||
|
||||
def update
|
||||
update! { edit_admin_my_account_url }
|
||||
end
|
||||
|
@ -28,30 +28,4 @@ module Admin
|
||||
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
|
||||
end
|
@ -2,6 +2,8 @@ module Admin
|
||||
class SnippetsController < BaseController
|
||||
|
||||
sections 'settings'
|
||||
|
||||
respond_to :json, :only => :update
|
||||
|
||||
def index
|
||||
@snippets = current_site.snippets.order_by([[:name, :asc]])
|
||||
|
@ -5,7 +5,7 @@ module Admin
|
||||
|
||||
sections 'settings', 'theme_assets'
|
||||
|
||||
respond_to :json, :only => :create
|
||||
respond_to :json, :only => [:create, :update]
|
||||
|
||||
def index
|
||||
assets = current_site.theme_assets.all
|
||||
|
@ -17,7 +17,7 @@ module Admin::BaseHelper
|
||||
def admin_button_tag(text, url, options = {})
|
||||
text = text.is_a?(Symbol) ? t(".#{text}") : text
|
||||
link_to(url, options) do
|
||||
content_tag(:span, text)
|
||||
content_tag(:em, escape_once(' ')) + text
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
%p= t('.help')
|
||||
|
||||
- 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? }" }
|
||||
= 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/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'
|
@ -4,11 +4,11 @@
|
||||
= render 'admin/shared/menu/assets'
|
||||
|
||||
- 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')
|
||||
|
||||
= 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
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
- content_for :buttons do
|
||||
= 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')
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
%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
|
||||
|
||||
|
@ -24,4 +24,4 @@
|
||||
= form_tag sort_admin_contents_path(@content_type.slug), :method => :put, :class => 'formtastic' do
|
||||
= 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'
|
||||
|
||||
- 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')
|
||||
|
||||
= 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
|
||||
|
||||
|
@ -7,11 +7,11 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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')
|
||||
|
||||
= 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
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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')
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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')
|
||||
|
||||
= 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.input :name
|
||||
|
@ -7,7 +7,7 @@
|
||||
= render 'admin/shared/menu/contents'
|
||||
|
||||
- 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')
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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')
|
||||
|
||||
= 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
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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')
|
||||
|
||||
|
@ -4,11 +4,11 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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)
|
||||
|
||||
= 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
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
= render 'admin/shared/menu/settings'
|
||||
|
||||
- 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')
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
%h2= title
|
||||
|
||||
#local-actions-bar
|
||||
|
||||
= yield :buttons
|
||||
|
||||
= yield
|
||||
|
@ -110,13 +110,6 @@ fr:
|
||||
show: voir
|
||||
help: "Le titre de la page est modifiable en cliquant dessus."
|
||||
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:
|
||||
cache_strategy:
|
||||
none: Aucun
|
||||
@ -141,12 +134,6 @@ fr:
|
||||
new: nouveau gabarit
|
||||
layout:
|
||||
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:
|
||||
index:
|
||||
@ -162,45 +149,27 @@ fr:
|
||||
help: "Remplissez le formulaire ci-dessous pour mettre à jour votre snippet."
|
||||
snippet:
|
||||
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:
|
||||
new:
|
||||
title: "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:
|
||||
edit:
|
||||
new_membership: ajouter compte
|
||||
help: "Le nom du site est modifiable en cliquant dessus."
|
||||
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:
|
||||
new:
|
||||
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."
|
||||
messages:
|
||||
successful_create: "Le compte a été ajouté avec succès."
|
||||
failed_create: "Le compte n'a pas été ajouté."
|
||||
|
||||
accounts:
|
||||
new:
|
||||
title: 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:
|
||||
edit:
|
||||
@ -209,9 +178,6 @@ fr:
|
||||
en: en Anglais
|
||||
fr: en Français
|
||||
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:
|
||||
index:
|
||||
@ -234,12 +200,6 @@ fr:
|
||||
images:
|
||||
title: Liste des 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:
|
||||
index:
|
||||
@ -256,12 +216,6 @@ fr:
|
||||
destroy: supprimer collection
|
||||
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"
|
||||
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:
|
||||
new:
|
||||
@ -270,12 +224,6 @@ fr:
|
||||
edit:
|
||||
title: "Edition 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:
|
||||
index:
|
||||
@ -292,12 +240,6 @@ fr:
|
||||
order_by:
|
||||
updated_at: 'Par date de mise à jour'
|
||||
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:
|
||||
index:
|
||||
@ -315,12 +257,6 @@ fr:
|
||||
title: '{{type}} — nouvel élément'
|
||||
edit:
|
||||
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:
|
||||
titles:
|
||||
|
@ -3,10 +3,10 @@ en:
|
||||
admin:
|
||||
pages:
|
||||
create:
|
||||
notice: "Page was successfully created"
|
||||
notice: "Page was successfully created."
|
||||
alert: "Page was not created."
|
||||
update:
|
||||
notice: "Page was successfully updated"
|
||||
notice: "Page was successfully updated."
|
||||
alert: "Page was not updated."
|
||||
sort:
|
||||
notice: "Pages were successfully sorted."
|
||||
|
116
config/locales/flash.fr.yml
Normal file
116
config/locales/flash.fr.yml
Normal file
@ -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."
|
11
doc/TODO
11
doc/TODO
@ -1,12 +1,7 @@
|
||||
BOARD:
|
||||
|
||||
- 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
|
||||
- flash messages in French
|
||||
|
||||
BACKLOG:
|
||||
|
||||
@ -30,6 +25,7 @@ NICE TO HAVE:
|
||||
- theme asset picker when editing layout
|
||||
- asset picker (content instance)
|
||||
- page with regexp url ?
|
||||
- page redirection (option)
|
||||
|
||||
DONE:
|
||||
|
||||
@ -59,4 +55,7 @@ x textile filter
|
||||
x [bug] varnish can not be refreshed in heroku so "max-age" has to be disabled => modify cache strategy
|
||||
x "remember me" should always be enabled
|
||||
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?
|
||||
display resource
|
||||
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?
|
||||
display resource, :status => :created, :location => resource_location
|
||||
else
|
||||
|
BIN
public/images/admin/icons/actions.png
Normal file
BIN
public/images/admin/icons/actions.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 704 B |
BIN
public/images/admin/menu/icons/assets.png
Normal file
BIN
public/images/admin/menu/icons/assets.png
Normal file
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');
|
||||
}
|
||||
|
||||
// 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() {
|
||||
if (CodeMirror == undefined)
|
||||
if (typeof CodeMirror == undefined)
|
||||
return;
|
||||
jQuery.each(CodeMirrorEditors, function() {
|
||||
this.el.val(this.editor.getCode());
|
||||
@ -38,16 +27,15 @@ jQuery.fn.saveWithShortcut = function() {
|
||||
|
||||
if (data.alert != undefined) {
|
||||
$.growl('error', data.alert);
|
||||
for (var i = 0; i < data.errors.length; i++) {
|
||||
var type = data.errors[i][0], value = data.errors[i][1];
|
||||
var node = form.find('li:has(#' + data.model + '_' + type + ')');
|
||||
for (var field in data.errors) {
|
||||
var error = data.errors[field];
|
||||
var node = form.find('li:has(#' + data.model + '_' + field + ')');
|
||||
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();
|
||||
} else {
|
||||
$.growl('success', data.notice);
|
||||
// $.publish('form.saved.success', [data]);
|
||||
}
|
||||
};
|
||||
|
||||
@ -56,7 +44,6 @@ jQuery.fn.saveWithShortcut = function() {
|
||||
|
||||
jQuery(document).bind('keypress.shortcut', function(event) {
|
||||
if (!(event.which == 115 && (event.ctrlKey || event.metaKey))) return true;
|
||||
// updateFromWyMeditor();
|
||||
updateFromCodeMirror();
|
||||
save(form);
|
||||
event.preventDefault();
|
||||
|
@ -37,31 +37,26 @@
|
||||
}
|
||||
|
||||
.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;
|
||||
height: 20px;
|
||||
font-size: 0.7em;
|
||||
padding: 0px 0px 0px 12px;
|
||||
padding: 0px 12px 0px 12px;
|
||||
color: #8B8D9A !important;
|
||||
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;
|
||||
text-shadow: 1px 1px 1px #fff;
|
||||
}
|
||||
|
||||
.button.small.add {
|
||||
padding-left: 24px;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.button.remove, .button.remove span {
|
||||
.button.remove {
|
||||
color: #ff092c !important;
|
||||
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 {
|
||||
position: absolute;
|
||||
top: 15px;
|
||||
top: 13px;
|
||||
right: 15px;
|
||||
}
|
||||
|
||||
#content #local-actions-bar a {
|
||||
display: block;
|
||||
float: left;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
padding: 2px 10px 3px 31px;
|
||||
color: #8b8d9a;
|
||||
text-decoration: none;
|
||||
font-size: 0.7em;
|
||||
padding-left: 24px;
|
||||
margin-left: 10px;
|
||||
background: transparent url(/images/admin/buttons/action-left.png) no-repeat 0 0;
|
||||
background-color: #ebedf4;
|
||||
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 {
|
||||
display: inline-block;
|
||||
height: 13px;
|
||||
background: transparent url(/images/admin/buttons/action-right.png) no-repeat right 0;
|
||||
padding: 1px 10px 8px 2px;
|
||||
#content #local-actions-bar a em {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 5px;
|
||||
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 {
|
||||
|
@ -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 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 a em { background: transparent url(/images/admin/menu/icons/settings.png) no-repeat 0 0; height: 14px; }
|
||||
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/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.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 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 a { background: url(/images/admin/menu/right.png) no-repeat right 0px; }
|
||||
|
@ -26,29 +26,30 @@ describe Membership do
|
||||
before(:each) do
|
||||
@membership = Factory.build(:membership, :site => Factory.build(:site))
|
||||
@account = Factory.build(:account)
|
||||
@account.stubs(:save).returns(true)
|
||||
Account.stubs(:where).returns([@account])
|
||||
Account.stubs(:find).returns(@account)
|
||||
end
|
||||
|
||||
it 'should tell error' do
|
||||
@membership.action_to_take.should == :error
|
||||
@membership.process!.should == :error
|
||||
end
|
||||
|
||||
it 'should tell we need to create a new account' do
|
||||
Account.stubs(:where).returns([])
|
||||
@membership.email = 'homer@simpson'
|
||||
@membership.action_to_take.should == :create_account
|
||||
@membership.process!.should == :create_account
|
||||
end
|
||||
|
||||
it 'should tell nothing to do' do
|
||||
@membership.email = 'bart@simpson.net'
|
||||
@membership.site.stubs(:memberships).returns([@membership, @membership])
|
||||
@membership.action_to_take.should == :nothing
|
||||
@membership.process!.should == :nothing
|
||||
end
|
||||
|
||||
it 'should tell membership has to be saved' do
|
||||
@membership.email = 'bart@simpson.net'
|
||||
@membership.action_to_take.should == :save_it
|
||||
@membership.process!.should == :save_it
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user