Giter Club home page Giter Club logo

alchemycms / alchemy_cms Goto Github PK

View Code? Open in Web Editor NEW
813.0 31.0 311.0 30.52 MB

Alchemy is the Open Source Rails CMS framework for the component based web that can be used as classic server side rendered or headless CMS.

Home Page: https://www.alchemy-cms.com

License: BSD 3-Clause "New" or "Revised" License

Ruby 58.67% CoffeeScript 0.55% JavaScript 11.83% CSS 3.14% HTML 7.99% Handlebars 0.02% SCSS 17.66% Sass 0.04% Haml 0.06% Slim 0.06%
alchemy-cms ruby cms rails-engine content-management-system rails admin

alchemy_cms's People

Contributors

aaongr avatar afdev82 avatar ajoneil avatar alchemycms-bot avatar alexanderadam avatar allanbreyes avatar chalmagean avatar dbwinger avatar depfu[bot] avatar gr8bit avatar hmans avatar irontoby avatar jasonyork avatar kulturbande avatar mamhoff avatar masche842 avatar metaskills avatar mickenorlen avatar milj avatar mtomov avatar oniram88 avatar pascalj avatar robinboening avatar sascha-karnatz avatar scambra avatar skeller1 avatar sweed avatar tvdeyen avatar westonganger avatar wuservices avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alchemy_cms's Issues

Seeding fails

rake db:seed fails with:

== Created language Deutsch
rake aborted!
uninitialized constant Rails::Logger

under Ruby 1.8.7, Rails 3.0.9

Error while dragging Elements from Trash into Elements window

+++++++++ Error: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.+ +++++++++++++

/Users/tvd/.rvm/gems/ruby-1.8.7-p334/gems/sortifiable-0.2.4/lib/sortifiable.rb:302:in `move_to_bottom'

Error while folding element

ActionView::Template::Error (undefined local variable or method `draggable' for #<#<Class:0x1065e4190>:0x1065dc968>):
    1: <div class="element_editor<%= element.folded ? ' folded' : '' %> <%= draggable ? 'draggable' : 'not-draggable'  %>" id="element_<%= element.id %>">
    2:  <%= render :partial => "admin/elements/element_head", :locals => {:element => element} %>
    3:  <%- if !element.folded? -%>
    4:      <%= form_for(

Increase Sitemap Performance

The Sitemap (Admin::Page.index) is very slow.

Rendering a nested set via Rails partials seems to be very slow.

Maybe we could cache some parts or reduce the number of partials. That is not very DRY, but a lot faster ;)

Sister pages for page in other languages

Since now switching the language means to goto the the root page of the other language.

We should implement a way to stay on the same page and just switch the language. But because languages are just branches in our page tree. So not every page has a corresponding page inside the other language branch. We could store sister pages or something like that.

RuntimeError in Admin/layoutpages#index

ActionView::Template::Error (Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id):
    41:         <div class="button_with_label">
    42:             <%= link_to_overlay_window(
    43:                 render_icon('add_page'),
    44:                 new_admin_page_path(:parent_id => @layout_root.id, :layoutpage => true),
    45:                 {
    46:                     :title => _('Add global page'),
    47:                     :size => '405x150',

500 Error while linking image

ActionView::Template::Error (uninitialized constant Alchemy::Configuration):
    23:         <label for="internal_link_target" class="very_long"><%= _("Open Link in") %>:</label>
    24:       </td>
    25:       <td>
    26:         <%= select_tag 'internal_link_target', options_for_select(Page.link_target_options), :class => 'link_target' %>
    27:       </td>
    28:     </tr>
    29:   </table>

Add a landing_page flag for Page

Since now we render the first public child as home page.
But maybe some customers want to set the landing page to a different page.

So we should add a landing_page flag to Page and render this page in Pages#index

Error while rendering elements via render_elements helper

ActionView::Template::Error (You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each_with_index):
    1: <%= render_elements %>
  app/views/page_layouts/_contact.html.erb:1:in `_app_views_page_layouts__contact_html_erb__2065966124_2201713320_2459070'

Rendered /Users/tvd/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.3ms)
Rendered /Users/tvd/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (138.0ms)
Rendered /Users/tvd/.rvm/gems/ruby-1.8.7-p334/gems/actionpack-3.0.7/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (147.0ms)

undeletable pages depending on the page_layout

We could set a flag for the page_layout defined in the page_layouts.yml wich tells the associated Page that it is not deletable.

Admin-Users should be able to delete this Page with this page_layout, but all other users may not.

Permit page access per user

Admins should be able to set page editing permissions for each user in the gui backend.

Another thought:

Possibility to grant or deny creation of certain page_layouts.

Question:

Should this automatically include subpages? This would reduce admin workload.

Implement an Installation Controller

For Browserbased Installation lets implement a installation controller, that migrates the database. Asks for Admin password and User and seeds the database.

Icons need more padding between them in icons.png

The Sprite file icons.png has to be altered. The icons should have more space between them. So resizing them i.e on iPad still looks good.

Maybe we should also align them vertically. So that we could use them easily in front of text.

Load Cell.elements via remote

To speed up performance in the Elements#list window, we should only load Elements from the active cell and load the other elements via remote on activating the tab.

copying elements does not work

clicking the copy link of an element has no effect.

Failure log in console:
ActionController::RoutingError (No route matches "/admin/clipboard")

hint for alchemy´s scaffold generator

If starting a fresh alchemy installation in browser without having page_layouts.yml, elements.yml, ...

You will get a hint in the console log:
Please run: rails generate alchemy_scaffold

This must be changed to:
Please run: rails generate alchemy:scaffold

Mark Page as deleted instead of deleting it

Since now a page that has a copy in the clipboard can be deleted, because the clipboard just holds the page id.

We should mark pages as deleted instead of destroying them.

A user should be able to change the page_layout of a page

Since now the user has to delete a page and create a new one if he wants to change the page_layout/type of the page.

The problems with this are the same as altering the page_layouts.yml file:

  1. delete elements if not allowed anymore?
  2. generate elements that have to be on that page?

not inserting a cutted element from trashbin correctly

Cut an Element and it will be available in clipboard and trashbin.

Taking it from the trashbin and putting it back on any page will cause an error where this Element will neither be assign a position nor a page-id. Although the Element is visible in the Element-Window, reloading will result in loss of that Element.

Folders for files and pictures in the archive

Back in the good old days there was a washapp branch where we had taggable pictures and files. This would be nice to implement something like folders for big image archives and file archives.

Save every link inside of Elements

In order to show some dead-link warning, or for automatically redirecting old links we should store all links the user ever sets inside of the EssenceRichtext, EssencePicture and EssenceText.

Add a backup module

Lets introduce a Backup Module:

A Backup is a database dump + Uploads Folder zipped as Package.
Multiple Backups should be listed in a Backup module.

Update Page, if page_layouts.yml was changed

Existing pages should be updated if the page_layouts.yml was altered.

What should we do, if Elements are on the page that are not allowed anymore?

  • delete? * hide? * ask the user? * If one add elements to autogenerate. Should they be generated?

user-mail fails on initial signup

After initial signup (localhost:3000/admin) "Unknown action"-Exception is raised.

"The action 'new_alchemy_user_mail' could not be found for Mailer"

Ruby 1.8.7, Rails 3.0.9

more scopes for page

i often realize that I have to ask for Page-objects in the views instead of working modelstrong.
You always have to be careful that you dont forget to built conditions into your logic in this views like asking if page is not restricted, or page is not public, or page is not visible, page with language_id and so on...

we should define some scopes for a this situations we often run into.

offset option for render_elements helper

In my page_layout I catch all elements of a Page via will_paginate. So i have a pagination.
Then I render these elements on the view, but I have to set an offset and need to assign it to the render_elements helper.

Now I set this as an option in render_elements (standard = nil) and in the Page-Model#find_selected_elements
This is not a big change but you have the opportunity to use will_paginate with elements, like:

<%- news_page = Page.find_by_page_layout('actuals') -%>
<%- @news_elements = Element.paginate_by_page_id_and_name(news_page, 'news', :per_page => 4, :page => params[:page]) %>
<%- offset = !params[:page].blank? ? ((params[:page].to_i == 1) ? 0 : params[:page].to_i) : nil -%>
<%= render_elements(:from_page => news_page, :only => 'news', :count => 2, :offset => offset) %>
<%= will_paginate(@elements) %>

new elements are created in wrong cell

In alchemy backend when editing a page with more than one cell:
When creating new elements for a certain cell, it will be created in a wrong cell.
(I take the assumption that the element is always created in the first cell which is found.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.