GithubHelp home page GithubHelp logo

decko-commons / decko Goto Github PK

View Code? Open in Web Editor NEW
55.0 13.0 15.0 151.95 MB

Start with a deck of wiki cards. Develop it into a rich web app.

Home Page: https://www.decko.org

License: GNU General Public License v3.0

Ruby 59.59% CSS 3.40% HTML 0.51% CoffeeScript 3.64% Shell 0.01% Gherkin 0.69% JavaScript 29.43% Dockerfile 0.10% SCSS 0.91% Haml 1.71%
ruby wiki framework cms structured-data

decko's Introduction

Decko: you hold the cards

Gem Version Semaphore Build Code Climate Badge License: GPL v3

Basics

Decko (formerly "Wagn") makes elegant web development fun.

Install a new deck, and you can immediately open a browser and start collaborating on content, design, and structure. Decko creators, or "Card Sharks", use Decko to create open community sites, private knowledge management sites, project management systems, wikis, blogs, journals, forums, and more.

Ruby developers can take these creations even further with Decko's development framework. As a Decko "Monkey", you can use the innovative Mods API to create sophisticated web systems that integrate seamlessly with structures that "Sharks" create on the site.

Start Sharking

Installation help is below. And there's lots of info at Decko.org, including:

And info about contributing to Decko is right next door.

Start Monkeying

On our docs site:

Elsewhere on Github:

We also have API Docs on Swaggerhub.

Installation

1. install dependencies

requirement variants
Ruby 2.5+
Bundler 1.0+
ImageMagick 6.7.8+
A database engine MySQL (5.7+) or PostgreSQL (9.4+)
A JavaScript runtime Node.js (8.9+) or other

2. install the gem

gem install decko

Watch carefully for errors!

3. create a new deck

decko new MY_DECK

MY_DECK is, of course, a variable. Use any name you like.

Options:

-f, [--force]                            # Overwrite files that already exist
-p, [--pretend], [--no-pretend]          # Run but do not make any changes
-q, [--quiet], [--no-quiet]              # Suppress status output
-s, [--skip], [--no-skip]                # Skip files that already exist
-M, [--monkey], [--no-monkey]            # Prepare deck for monkey (mod developer)
-P, [--platypus], [--no-core-dev]        # Prepare deck for platypus (core developer)
-R, [--repo-path=PATH]                   # Path to local decko repository.
                                         # Can also specify via `env DECKO_REPO_PATH=PATH`
-I, [--interactive], [--no-interactive]  # Prompt with dynamic installation options

4. create / seed database

Edit the config/database.yml file as necessary. More about database configuration at https://www.decko.org/database_configuration.

Then run

cd MY_DECK
decko setup

..to create and seed the database

Options:

-p, --production                 decko:seed production database (default)
-t, --test                       decko:seed test database
-d, --development                decko:seed development database
-a, --all                        decko:seed production, test, and development database

5. start your server

To fire up the default, built-in WEBrick server, just run:

decko server

...and point your browser to http://localhost:3000 (unless otherwise configured).

Options:

-p, [--port=port]                        # Runs Decko on the specified port. 
                                           Defaults to 3000.
-b, [--binding=IP]                       # Binds Decko to the specified IP.
                                           Defaults to 'localhost' in development 
                                           and '0.0.0.0' in other environments'.
-c, [--config=file]                      # Uses a custom rackup configuration.
                                           Default is config.ru.
-d, [--daemon], [--no-daemon]            # Runs server as a Daemon.
-e, [--environment=name]                 # Specifies the environment in which to run 
                                           this server (development/test/production).
-P, [--pid=PID]                          # Specifies the PID file.
                                           Default is tmp/pids/server.pid.
    [--early-hints], [--no-early-hints]  # Enables HTTP/2 early hints.

For more information, see https://decko.org/get_started.

Upgrading

Standard Upgrade

1. Backups

Always back up your database and uploaded files.

2. Update Libraries

From your decko root directory run:

bundle update

3. Update Database

Run the following:

decko update

4. Restart your server.

Upgrade from Wagn to Decko

If you have an old site (pre 2018), haven't upgraded in a long time, and see many references to "Wagn" in your deck, you may need to do a more involved update.

1. update references to "wagn" in file content

In your decko's root directory, edit Gemfile, config/application.rb, config/routes.rb, and script/wagn, replacing "wagn" with "decko". (Keep the same capitalization pattern.)

2. update references to "wagn" in file names.

From your decko root directory run:

mv script/wagn script/decko

3. continue as with Standard Upgrade

See above.

Upgrade pre-gem Wagn site

First check the Wagn version of your existing site.

Version 1.10 or newer

  1. Create a new deck using steps 1 and 2 from the installation section above.
  2. Copy config/database.yml from the old site to the new one.
  3. Copy the old local/files contents to the new files directory.
  4. If you have edited wagn.yml in your old site, make the corresponding changes to the new config/application.rb file.
  5. Follow the standard upgrade procedure above.

Older than Version 1.10

Ho. Ly. Cow. Welcome back!

First update your Wagn to version 1.10 via the old update mechanisms, and then follow the directions above.

Mods

Mods are little bits of code that alter Decko behavior.

Installing Mods

Many mods have been made into ruby gems that follow the naming pattern card-mod-X. All you have to do to install one of these mods is:

1. add the mod (or mods) to your Gemfile

 gem "card-mod-mymod"

2. download and install the gem

 bundle update

3. run any migrations, mergers, or scripts:

 decko update

...and then restart your server.

Creating / Editing mods

Development Environment

If you're interested in making your own mod, the first thing to do is set up a good development environment. This is most easily done by creating a new deck with the --monkey (or -M) options, eg:

decko new MY_DECK --monkey

If you're working on an existing deck, it's often easiest just to do the above and then make the new deck use your existing files and database. However, if that's not an option, you can instead follow the following procedure:

  1. Make sure you have all the monkey-friendly gems in your Gemfile. If your deck was generated recently, you'll probably already have several references to these gems (eg card-mod-monkey) and will just need to uncomment them. If not, you can run the above command to create a dummy deck and copy the Gemfile over to your real one.
  2. In your real deck, comment out ENV['RAILS_ENV'] ||= 'production' in config/boot.rb. This will mean your default mode is now "development."
  3. Configure config/database.yml to your liking.

decko's People

Contributors

chuenlok avatar cschweipert avatar davidpgero avatar dcastroeyss avatar dependabot[bot] avatar ecton avatar ethn avatar gerryg avatar imgbotapp avatar leword avatar mike14495 avatar rhwentworth avatar splattael avatar srivig avatar stereobooster avatar tukanos avatar vasgat avatar vineacorn avatar wagn avatar xithan 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

Watchers

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

decko's Issues

Couldn't find Active Storage configuration in /home/user/mysite/config/storage.yml (RuntimeError)

This is from a clean slate:
decko new mysite
{configure database.yml}
cd mysite
decko seed

decko server

will not run - it fails at the activestorage gem:

/var/lib/gems/2.7.0/gems/activestorage-6.1.3/lib/active_storage/engine.rb:121:in 'block (2 levels) in <class:Engine>': Couldn't find Active Storage configuration in /home/user/mysite/config/storage.yml (RuntimeError)

storage.yml isn't automatically created by decko new mysite. I created the default storage.yml file, but then decko server won't serve any pages even though it does run. I just get blank pages. Running curl http://localhost:3000 gives nil returned.

500 Server Error Changing Cardype from File or Image to Anything Else

Brand new deck, create new card newcard and set its Cardtype to File. Save.

Now change Cardtype to RichText:

Wild Card!
500 Server Error
Yuck, sorry about that.

Same error when attempting to change the Cardtype to anything else.

Similarly, create newcard, set its Cardtype to Image, submit an image file and save.

Changing the Cardtype to anything else also results in the 500 Server Error.

If neither the File or Image Cardtypes can be changed, maybe the option to change it should be removed? Or a warning that the image/file will be unlinked / removed?

Decko optimalizations

Hi Ethan,

Is this still valid from the wagn.org site?

Optimizing

The above should help you get wagn working, but you'll have to do a bit more to make it fast.

memcache. This is vital for a high-performing Wagn site.

To configure wagn for memcache, add this to your Gemfile:

gem 'dalli'

and edit config/application.rb with the following:

config.cache_store = :dalli_store, []

mod_xsendfile. File and Image cards process permissions before sending the file.  This makes that fast.
mod_expires. Makes use of wagn's non-expiring assets so images, stylesheets, and javascript don't slow down page loads at all.
You'll need to enable mod_headers so that the ht_access will work (Headers directives)
Also, you'll need to symlink to the gem's public directory if you're running a version older than 1.13 This should happen automatically whenever you run `wagn update`, but you can also do it manually using `rake wagn:update_assets_symlink

As of wagn 1.13.0 this is no longer needed, but might still be relevant to some users:
You will need to pay special attention to the public directory.  Because Wagn is still transitioning its javascript into cards, it is still using the public directory from the Wagn gem and not from the individual Wagn installation.  The temporary fix for this is to create a symbolic link to the gem's public directory. 
So if you created a new wagn in /srv/mywagn, let's call that's your "appdir".   And if your wagn gem is stored in /usr/local/rvm/gems/ruby-1.9.3-p374/gems/wagn-1.12.12, that would be your "gemdir".  You can find out where your wagn gem is located using `bundle show wagn`.  The public directory link you need is something like this:

 

> cd [appdir]; ln -s [gemdir]/public

Referenceing to site root

This is more like a feature request.

When using reverse proxy not having access to siteroot (organizational limitation)
The webpage trying to access /files and /assets

Is it possible to change to relative address

[link] Dead link to Workflow Howto

Hi Ethan,

I'm looking around how to setup Decko in a way that would not require too much change after initial setup. First approach is to go via the links and I found out that the workflow link is dead or was not yet created (same with Evolution). What is the correct link?

Thank you

Stuck trying to upgrade from wagn 1.9.1 - cannot install wagn

Im trying to upgrade a site from wagn 1.9.1
I understand that I need to get wagn 1.10 installed first and run migrations, but I cant get wagn 1.10 or any wagn installed:
gem install wagn
ERROR: Could not find a valid gem 'card' (= 1.21.1) (required by 'wagn' (>= 0)) in any repository
ERROR: Possible alternatives: card

Can you direct me in the right direction ?
(maybe if you can point me to the migrations needed to run, I can do it manually)
Thanks
Michael

disable double click to edit

as just a user of a website that uses decko i find it extremely frustrating that when i double click text (to select text) i instead find a new page to sign up or sign in to edit the page. I would be happy if this feature would not be a defautl feature or at least provide a way to return to the previous content once this sign up and sign in page appears.

[Search] Keyword parameters in Search broken again

This is a followup to this support ticket.

I confirmed that this was working in an earlier version, but it appears to be broken now. An example wql search would be:

{"type":"Game Entry", "match":"$keyword", "append":"General", "sort":"relevance", "view":"closed"}

And the URL would be:

http://learning.sd.polyu.edu.hk/gamesdb/General_Search?utf8=%E2%9C%93&_keyword=RPG

The expected output would be all +General cards on Game Entry cards that match the "RPG" keyword.

The actual output is the list of all +General cards on Game Entry cards (regardless of keyword).

This was the feature that motivated us to update to Decko, so it's fairly critical that we get it back as soon as possible.

Edit: Oh, and this is updated to the latest release. Thanks for the help before, btw!

Make editor configurable to use TincyMCE instead of ProseMirror

ProseMirror doesn't work for my most active user, so I need to be able to configure my decko to use the old editor, TinyMCE.

This was supposedly almost ready eight months ago, but last I heard, it still hasn't been released.

On 6/5/2017 11:20 AM, Ethan McCutchen wrote:

I don't think we finished making that configurable, but I think that's something we could add quickly, because Philipp has already done the heavy lifting.

[card management] Error while deleting a card

Hi Ethan and others I don't know yet,

I know I look like the one breaking your Decko, but really I'm only trying to use it. My friend always tells me, I'm a bug magnet.

I've tried to delete the pointer card and got this error:

image

In this case in the log I got some messages:

production.log

Non-executable files set with executable permissions

Hey there,

While reviewing the source code of card-mod-bootstrap I've noticed, that several files in the vendor/ directory have executable permissions while not being an executables.

For example:

vendor/bootswatch/docs/3/bower_components/font-awesome/fonts/fontawesome-webfont.woff
vendor/bootswatch/docs/3/bower_components/font-awesome/fonts/fontawesome-webfont.eot
vendor/bootswatch/docs/2/font/fontawesome-webfont.eot
vendor/bootswatch/docs/3/bower_components/font-awesome/fonts/fontawesome-webfont.svg
public/assets/fonts/MaterialIcons-Regular.svg
# and many more...

is that something intended? If so, I would appreciate explanation as I often find it as a bug.

Thank you 🙏

[consistency] Checking external or internal links

Hi Ethan,

Thinking over the core structure of the knowledge base got me thinking about content verification. This could probably be usefully also for wikirate.

Is there a possibility or mechanism in the wagn to check the already created cards for link validity? What do I mean?

Image that I have created a deck of cards in which I want to talk about one topic. For example, zfs filesystem. I would like to have one card among the others with links to sites where to you could get valid and beneficial information. However, it is time consuming and nearly impossible to check periodically all the links manually. Is there a possibility for wagn to check these links?

If there no solution yet:
To me the best solution for this would be to integrate already created solution - use something like link-checker

During `decko seed` getting ExecJS::RuntimeUnavailable message (with solution)

My configuration:

[smalltalk@localhost _info_]$ ruby --version
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
[smalltalk@localhost _info_]$ uname -a
Linux localhost.localdomain 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[smalltalk@localhost _info_]$ hostnamectl
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: beb4030b979d4cdcbf51ec99034121fc
           Boot ID: ef48b881066040b098767226d0855d48
    Virtualization: kvm
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.26.2.el7.x86_64
      Architecture: x86-64

This is for those who may encounter similar issues when installing Decko and for the developers so they can fix it.

I wanted to create a testing decko installation and I'm getting a ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. message.

I have installed the javascript google's V8 runtime using: gem install therubyracer.

When I test the testing code it in irb session I'm getting anwers:

[smalltalk@localhost _info_]$ irb
2.3.0 :001 > require 'execjs'
 => true 
2.3.0 :002 > ExecJS.eval "'red yellow blue'.split(' ')"
 => ["red", "yellow", "blue"] 

When running decko seed I'm getting this error:

...
rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/execjs-2.7.0/lib/execjs.rb:5:in `<module:ExecJS>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/execjs-2.7.0/lib/execjs.rb:4:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/uglifier-3.2.0/lib/uglifier.rb:5:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/mod/machines/set/abstract/script.rb:3:in `<module:Script>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/mod/machines/set/abstract/script.rb:-4:in `<class:Abstract>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/mod/machines/set/abstract/script.rb:-4:in `<module:Set>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/mod/machines/set/abstract/script.rb:-4:in `<class:Card>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/mod/machines/set/abstract/script.rb:-4:in `<main>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/module_template.rb:18:in `eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/module_template.rb:18:in `build'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy/eval.rb:10:in `block in load_modules'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:52:in `block in each_file_in_dir'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:49:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:49:in `each_file_in_dir'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:39:in `block (2 levels) in each_file'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:38:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:38:in `block in each_file'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/dirs.rb:114:in `block in each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/dirs.rb:111:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/dirs.rb:111:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy.rb:35:in `each_file'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/load_strategy/eval.rb:8:in `load_modules'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/loader.rb:35:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/loader/set_loader.rb:22:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod/loader.rb:45:in `load_mods'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card/mod.rb:55:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/cardio.rb:10:in `block in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:69:in `instance_eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:69:in `block in execute_hook'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:60:in `with_execution_control'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:65:in `execute_hook'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:50:in `block in run_load_hooks'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:49:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/lazy_load_hooks.rb:49:in `run_load_hooks'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/lib/card.rb:180:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:379:in `block in require_or_load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:36:in `block in load_interlock'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:12:in `block in loading'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:149:in `exclusive'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:11:in `loading'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:36:in `load_interlock'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:357:in `require_or_load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:510:in `load_missing_constant'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:202:in `const_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:542:in `load_missing_constant'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:202:in `const_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:542:in `load_missing_constant'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:202:in `const_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/decko-0.3.7/lib/decko/application.rb:24:in `block in <class:Application>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/initializable.rb:30:in `instance_exec'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/initializable.rb:30:in `run'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/initializable.rb:59:in `block in run_initializers'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/initializable.rb:58:in `run_initializers'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/application.rb:353:in `initialize!'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/railtie.rb:185:in `public_send'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/railtie.rb:185:in `method_missing'
/home/smalltalk/web/_info_/config/environment.rb:5:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `block in require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:292:in `require'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/application.rb:329:in `require_environment!'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/railties-5.1.4/lib/rails/application.rb:445:in `block in run_tasks_blocks'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/decko-0.3.7/lib/decko/tasks/alias.rb:7:in `block in alias_task'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => card:reset_cache => environment
(See full trace by running task with --trace)
...

I have tried to export the variable

EXECJS_RUNTIME=RubyRacer
export EXECJS_RUNTIME=RubyRacer

I got an error:

[smalltalk@localhost _info_]$ decko seed
bundle exec rake decko:seed
Database '_info__production' already exists
rake aborted!
ExecJS::RuntimeUnavailable: therubyracer (V8) runtime is not available on this system

The solution:

Edit Gemfile and add dependencies:

gem 'execjs'
gem 'therubyracer'

Now the bundle rake runs correctly:

decko seed
bundle exec rake decko:seed
Database '_info__production' already exists
not dropped
creating
loading schema
-- create_table("card_actions", {:id=>:integer, :force=>:cascade})
   -> 0.0143s
-- create_table("card_acts", {:id=>:integer, :force=>:cascade})
   -> 0.0064s
-- create_table("card_changes", {:id=>:integer, :force=>:cascade})
   -> 0.0115s
-- create_table("card_references", {:id=>:integer, :force=>:cascade})
   -> 0.0165s
-- create_table("card_revisions", {:id=>:integer, :force=>:cascade})
   -> 0.0076s
-- create_table("cards", {:id=>:integer, :force=>:cascade})
   -> 0.0154s
-- create_table("delayed_jobs", {:force=>:cascade})
   -> 0.0199s
-- create_table("schema_migrations_core_cards", {:id=>false, :force=>:cascade})
   -> 0.0045s
-- create_table("schema_migrations_deck_cards", {:id=>false, :force=>:cascade})
   -> 0.0050s
-- create_table("sessions", {:id=>:integer, :force=>:cascade})
   -> 0.0060s
-- create_table("users", {:id=>:integer, :force=>:cascade})
   -> 0.0062s
update card_migrations
-- assume_migrated_upto_version("20170830210517", ["/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.7/db/migrate_core_cards"])
   -> 0.0095s
loading bootstrap
set symlink for assets
reset cache

Imagemagick is installed, still can't upload images

Hi Ethan, very new to Decko, loving what I'm seeing so far!

I read the Troubleshooting section, and I made sure Imagemagick is installed:

apt list imagemagick -a
Listing... Done
imagemagick/bionic-updates,bionic-security,now 8:6.9.7.4+dfsg-16ubuntu6.8 amd64 [installed]
imagemagick/bionic 8:6.9.7.4+dfsg-16ubuntu6 amd64

When I try to follow the tutorial (and yes, I saw issue #293), I get a zero-byte content message:
Screenshot from 2020-06-01 00-06-37

This happens with any image type, and not just from within a +card. If I create a new card and try to insert an image, I get the same thing:
Screenshot from 2020-06-01 00-17-39

If I try and create the card as a file type and upload a pdf, that works fine,
Screenshot from 2020-06-01 00-21-11

until I try and change it:
Screenshot from 2020-06-01 00-22-41

The logs haven't been specifically helpful in troubleshooting this (these?) issue(s):

Started GET "/plain_old_card" for 127.0.0.1 at 2020-06-01 00:16:36 -0400 Processing by CardController#read as HTML Parameters: {"mark"=>"plain_old_card"} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 200 OK in 346ms (Views: 0.8ms | ActiveRecord: 5.2ms | Allocations: 132982) Started GET "/plain_old_card?card%5Bname%5D=plain_old_card&view=new&card%5Btype%5D=Image&utf8=%E2%9C%93&success=_self&card%5Bname%5D=plain_old_card&card%5Btype%5D=Image&assign=true&card%5Bcontent%5D=&_=1590984997018&main=plain_old_card&is_main=true&slot%5Bview%5D=titled&slot%5Bnest_name%5D=_main&slot%5Bnest_syntax%5D=_main%7Ctitled&slot%5Bmain%5D=true&slot%5Bhome_view%5D=titled&slot%5Bmain_view%5D=true&slot%5Blayout%5D=Default%20Layout" for 127.0.0.1 at 2020-06-01 00:16:45 -0400 Processing by CardController#read as JS Parameters: {"card"=>{"name"=>"plain_old_card", "type"=>"Image", "content"=>""}, "view"=>"new", "utf8"=>"✓", "success"=>"_self", "assign"=>"true", "_"=>"1590984997018", "main"=>"plain_old_card", "is_main"=>"true", "slot"=>{"view"=>"titled", "nest_name"=>"_main", "nest_syntax"=>"_main|titled", "main"=>"true", "home_view"=>"titled", "main_view"=>"true", "layout"=>"Default Layout"}, "mark"=>"plain_old_card"} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 200 OK in 93ms (Views: 1.0ms | ActiveRecord: 0.5ms | Allocations: 69465) Started POST "/card/create" for 127.0.0.1 at 2020-06-01 00:16:51 -0400 Processing by CardController#create as HTML Parameters: {"card"=>{"type_id"=>"19", "image"=>#<ActionDispatch::Http::UploadedFile:0x0000560ba8dfc668 @tempfile=#<Tempfile:/tmp/RackMultipart20200601-25348-18hym7h.jpg>, @original_filename="Printer-icon.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"card[image]\"; filename=\"Printer-icon.jpg\"\r\nContent-Type: image/jpeg\r\n">}, "attachment_upload"=>"card[image]"} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 200 OK in 68ms (Views: 0.3ms | ActiveRecord: 19.8ms | Allocations: 18202) Started GET "/plain_old_card?card%5Bname%5D=plain_old_card&view=new&card%5Btype%5D=File&utf8=%E2%9C%93&success=_self&card%5Bname%5D=plain_old_card&card%5Btype%5D=File&assign=true&attachment_type_id=19&card%5Bimage%5D=&file_card_name=plain_old_card&card%5Baction_id_of_cached_upload%5D=54536&_=1590984997019&main=plain_old_card&is_main=true&slot%5Bview%5D=new&slot%5Bnest_name%5D=_main&slot%5Bnest_syntax%5D=_main%7Ctitled&slot%5Bmain%5D=true&slot%5Bhome_view%5D=titled&slot%5Bmain_view%5D=true" for 127.0.0.1 at 2020-06-01 00:19:47 -0400 Processing by CardController#read as JS Parameters: {"card"=>{"name"=>"plain_old_card", "type"=>"File", "image"=>"", "action_id_of_cached_upload"=>"54536"}, "view"=>"new", "utf8"=>"✓", "success"=>"_self", "assign"=>"true", "attachment_type_id"=>"19", "file_card_name"=>"plain_old_card", "_"=>"1590984997019", "main"=>"plain_old_card", "is_main"=>"true", "slot"=>{"view"=>"new", "nest_name"=>"_main", "nest_syntax"=>"_main|titled", "main"=>"true", "home_view"=>"titled", "main_view"=>"true"}, "mark"=>"plain_old_card"} exception = Card::Error::ServerError: undefined method `image=' for #<Card#[file:18](plain_old_card){new} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 500 Internal Server Error in 43ms (Views: 1.8ms | ActiveRecord: 0.0ms | Allocations: 12803) Started GET "/plain_old_card" for 127.0.0.1 at 2020-06-01 00:20:13 -0400 Processing by CardController#read as HTML Parameters: {"mark"=>"plain_old_card"} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 200 OK in 174ms (Views: 4.4ms | ActiveRecord: 0.5ms | Allocations: 131444) Started GET "/files/:all_script_machine_output/machines.js" for 127.0.0.1 at 2020-06-01 00:20:13 -0400 Processing by CardController#read as JS Parameters: {"explicit_file"=>true, "mark"=>":all_script_machine_output", "rev_id"=>"machines"} Sent file /var/lib/gems/2.5.0/gems/card-1.99.5/mod/machines/file/all_script_machine_output/file.js (0.1ms) Completed 200 OK in 14ms (ActiveRecord: 0.0ms | Allocations: 8001) Started GET "/files/:all_style_machine_output/machines.css" for 127.0.0.1 at 2020-06-01 00:20:13 -0400 Processing by CardController#read as CSS Parameters: {"explicit_file"=>true, "mark"=>":all_style_machine_output", "rev_id"=>"machines"} Sent file /var/lib/gems/2.5.0/gems/card-1.99.5/mod/machines/file/all_style_machine_output/file.css (1.9ms) Completed 200 OK in 17ms (ActiveRecord: 0.0ms | Allocations: 7977) Started GET "/plain_old_card?card%5Bname%5D=plain_old_card&view=new&card%5Btype%5D=File&utf8=%E2%9C%93&success=_self&card%5Bname%5D=plain_old_card&card%5Btype%5D=File&assign=true&card%5Bcontent%5D=&_=1590985213570&main=plain_old_card&is_main=true&slot%5Bview%5D=titled&slot%5Bnest_name%5D=_main&slot%5Bnest_syntax%5D=_main%7Ctitled&slot%5Bmain%5D=true&slot%5Bhome_view%5D=titled&slot%5Bmain_view%5D=true&slot%5Blayout%5D=Default%20Layout" for 127.0.0.1 at 2020-06-01 00:20:16 -0400 Processing by CardController#read as JS Parameters: {"card"=>{"name"=>"plain_old_card", "type"=>"File", "content"=>""}, "view"=>"new", "utf8"=>"✓", "success"=>"_self", "assign"=>"true", "_"=>"1590985213570", "main"=>"plain_old_card", "is_main"=>"true", "slot"=>{"view"=>"titled", "nest_name"=>"_main", "nest_syntax"=>"_main|titled", "main"=>"true", "home_view"=>"titled", "main_view"=>"true", "layout"=>"Default Layout"}, "mark"=>"plain_old_card"} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 200 OK in 104ms (Views: 0.8ms | ActiveRecord: 0.6ms | Allocations: 69422) Started POST "/card/create" for 127.0.0.1 at 2020-06-01 00:20:22 -0400 Processing by CardController#create as HTML Parameters: {"card"=>{"type_id"=>"18", "file"=>#<ActionDispatch::Http::UploadedFile:0x0000560ba95fee10 @tempfile=#<Tempfile:/tmp/RackMultipart20200601-25348-5mg51n.pdf>, @original_filename="dummy.pdf", @content_type="application/pdf", @headers="Content-Disposition: form-data; name=\"card[file]\"; filename=\"dummy.pdf\"\r\nContent-Type: application/pdf\r\n">}, "attachment_upload"=>"card[file]"} Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 200 OK in 77ms (Views: 0.3ms | ActiveRecord: 26.7ms | Allocations: 15516) Started GET "/plain_old_card?card%5Bname%5D=plain_old_card&view=new&card%5Btype%5D=Image&utf8=%E2%9C%93&success=_self&card%5Bname%5D=plain_old_card&card%5Btype%5D=Image&assign=true&attachment_type_id=18&card%5Bfile%5D=&file_card_name=plain_old_card&card%5Baction_id_of_cached_upload%5D=54537&_=1590985213571&main=plain_old_card&is_main=true&slot%5Bview%5D=new&slot%5Bnest_name%5D=_main&slot%5Bnest_syntax%5D=_main%7Ctitled&slot%5Bmain%5D=true&slot%5Bhome_view%5D=titled&slot%5Bmain_view%5D=true" for 127.0.0.1 at 2020-06-01 00:22:06 -0400 Processing by CardController#read as JS Parameters: {"card"=>{"name"=>"plain_old_card", "type"=>"Image", "file"=>"", "action_id_of_cached_upload"=>"54537"}, "view"=>"new", "utf8"=>"✓", "success"=>"_self", "assign"=>"true", "attachment_type_id"=>"18", "file_card_name"=>"plain_old_card", "_"=>"1590985213571", "main"=>"plain_old_card", "is_main"=>"true", "slot"=>{"view"=>"new", "nest_name"=>"_main", "nest_syntax"=>"_main|titled", "main"=>"true", "home_view"=>"titled", "main_view"=>"true"}, "mark"=>"plain_old_card"} exception = Card::Error::ServerError: undefined method `file=' for #<Card#[image:19](plain_old_card){new} Did you mean? file_id Rendering text template Rendered text template (Duration: 0.0ms | Allocations: 2) Completed 500 Internal Server Error in 39ms (Views: 1.2ms | ActiveRecord: 0.0ms | Allocations: 12828)

Is this something I've just misconfigured, am I doing something wrong, or is this a bug?

in `customize_button'; undefined method `capture' for 0:Fixnum

On a fresh install I want to customize the skin and get errors on the skin overview. Right of the apply button I get the following error message for each skin (shown below for cerulean):

Error rendering: cerulean skin (customize_button view)

Steps to reproduce:
Create a new decko instance (new, seed), start the server, create a user, navigate to page *all, open the style rule.
The logfile says:

undefined method `capture' for 0:Fixnum

["/var/lib/gems/2.3.0/gems/card-1.96.8/mod/machines/set/abstract/skin_box.rb:17:in customize_button'", "/var/lib/gems/2.3.0/gems/card-1.96.8/mod/machines/set/abstract/skin_box.rb:12:in block (2 levels) in module:SkinBox'", …

21 times (as there are 21 skins).

ruby 2.3.3p222, decko 0.6.8, card 1.96.8

Gemfile.lock.txt

(I had errors before trying to upgrade a decko 0.4.x install to 0.6 (this is why I did a fresh install), but I am not sure whether these are related to this).

decko seed on postgresql generates errors

Hi Ethan,

I have tried to deploy the Decko on postgresql but got error when performing "decko seed".

It appears that the 1ENGINE=InnoDB DEFAULT1 alias Mysql is hardcoded. Is there a trick for it to be deployed on Postgresql?

Here is the error:

[smalltalk@localhost test_postgresql]$ decko seed -p
env RAILS_ENV=production bundle exec rake decko:seed
Database 'production-database' already exists
rake aborted!
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  syntax error at or near "ENGINE"
LINE 1: ...n_type" integer, "draft" boolean, "comment" text) ENGINE=Inn...
                                                             ^
: CREATE TABLE "card_actions" ("id" serial NOT NULL PRIMARY KEY, "card_id" integer, "card_act_id" integer, "super_action_id" integer, "action_type" integer, "draft" boolean, "comment" text) ENGINE=InnoDB DEFAULT CHARSET=utf8
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `async_exec'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `block (2 levels) in execute'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:72:in `block in execute'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:71:in `execute'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/schema_statements.rb:288:in `create_table'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.8/db/schema.rb:15:in `block in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `instance_eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `define'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/schema.rb:44:in `define'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.8/db/schema.rb:13:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:233:in `load_schema'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:248:in `block (3 levels) in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/decko-0.3.8/lib/decko/tasks/decko.rake:119:in `seed'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/decko-0.3.8/lib/decko/tasks/decko.rake:17:in `block (2 levels) in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'

Caused by:
PG::SyntaxError: ERROR:  syntax error at or near "ENGINE"
LINE 1: ...n_type" integer, "draft" boolean, "comment" text) ENGINE=Inn...
                                                             ^
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `async_exec'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `block (2 levels) in execute'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:46:in `block in permit_concurrent_loads'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/concurrency/share_lock.rb:185:in `yield_shares'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies/interlock.rb:45:in `permit_concurrent_loads'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:72:in `block in execute'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:612:in `block (2 levels) in log'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:611:in `block in log'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract_adapter.rb:603:in `log'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:71:in `execute'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/schema_statements.rb:288:in `create_table'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:849:in `block in method_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `block in say_with_time'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:818:in `say_with_time'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/migration.rb:838:in `method_missing'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.8/db/schema.rb:15:in `block in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `instance_eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/schema.rb:48:in `define'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/schema.rb:44:in `define'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/card-1.93.8/db/schema.rb:13:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `block in load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:258:in `load_dependency'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activesupport-5.1.4/lib/active_support/dependencies.rb:286:in `load'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:233:in `load_schema'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:248:in `block (3 levels) in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/decko-0.3.8/lib/decko/tasks/decko.rake:119:in `seed'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/decko-0.3.8/lib/decko/tasks/decko.rake:17:in `block (2 levels) in <top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
/home/smalltalk/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
/home/smalltalk/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:schema:load
(See full trace by running task with --trace)
not dropped
creating
loading schema
-- create_table("card_actions", {:id=>:integer, :force=>:cascade, :options=>"ENGINE=InnoDB DEFAULT CHARSET=utf8"})

translation missing: en.mod.card-mod-format-0.11.1.set.type.toggle.no

Brand-new deck. If I create a new card newcard and set its type to Toggle, it displays the following when I save it:
translation missing: en.mod.card-mod-format-0.11.1.set.type.toggle.no

Similarly, if I delete it and create a new 'newcard' and set its type to Image without adding an image file, on submit I get the following:

translation missing: en.mod.card-mod-format-0.11.1.set.all.html_error.problems_name

IMAGE: is missing

If I attempt to add an image, I get:

Imagefile.png | 8.93 KB |  translation missing: en.mod.card-mod-carrierwave-0.11.1.set.type.file.delete

Similarly, delete it and create new 'newcard' and set its type to Search and try to Submit it empty:

translation missing: en.mod.card-mod-format-0.11.1.set.all.html_error.problems_name

CORE VIEW: can't run search with empty content

Delete that, new card 'newcard' and set its type to CardType:

+description
translation missing: en.mod.card-mod-format-0.11.1.set.type.cardtype.add_card
  translation missing: en.mod.card-mod-format-0.11.1.set.type.cardtype.configure_card
0 results

working after an update

I just wanted to let you know that after our discussion yesterday when I informed you that it was not working, I did an kind of update today:
bundle update
sudo decko update
migrating structure
migrating deck structure
migrating core cards
migrating deck cards
installing card mods (was green)

and after a sudo decko server
I got a working website in return, yesterday it was looking for a assets.css which returned a error 500, today it is looking for
http://0.0.0.0:3000/files/~93160/1643743009.css and that file is found.

In the logs I still one error:
2022-02-01 20:17:26 +0100 Invalid request: Invalid HTTP format, parsing fails.
but decko is starting and looks great.

Thanks,
Hapee

Confusing web presence makes Wagn/Decko look semi-defunct

Hey folks, I used Wagn back in 2011 and really liked it (together with Peter K.). Now I'm checking back in on the project, and the only place I see clear action is here on GitHub. I see a bit of action on the support ticket page, but the last answer to a ticket was June 2017. Both of the mailing lists and the Twitter account seem abandoned. All of these things are pointed to from the decko.org website. All this leaves the project looking a bit abandoned. Maybe the public image of Decko could improve by reviving those communication tools, or removing them from the decko.org website, or creating a blog that reflects at least the GitHub activity. Why does the public image matter? Because software changes, and projects that look abandoned attract fewer users. Or maybe there's something else going on here that I don't understand?

undefined method 'notable_exception_raised'

Hi @ethn , @xithan ,

Long time no see :) I haven't had a chance to sneak in your meeting in Vignesh's office so I am greeting you guys here (and raise an issue I encountered)!

I promised Philipp that I will add something to decko but I had a problem while trying to start a new deck.

I created a new deck with decko new mysite --core-dev. I did decko seed but when I did decko server, I was seeing the error undefined method 'notable_exception_raised'.

Here is the backtrace:

NoMethodError (undefined method `notable_exception_raised' for #<Card:0x007f8d44fed250>):

activemodel (5.1.5) lib/active_model/attribute_methods.rb:432:in `method_missing'
/Users/navi/dev/decko/decko/card/lib/card/error.rb:77:in `problematic_exception_view'
/Users/navi/dev/decko/decko/card/lib/card/error.rb:71:in `exception_view'
/Users/navi/dev/decko/decko/decko/rails/controllers/card_controller.rb:139:in `block in <class:CardController>'
activesupport (5.1.5) lib/active_support/rescuable.rb:115:in `instance_exec'
activesupport (5.1.5) lib/active_support/rescuable.rb:115:in `block in handler_for_rescue'
activesupport (5.1.5) lib/active_support/rescuable.rb:91:in `rescue_with_handler'
activesupport (5.1.5) lib/active_support/rescuable.rb:164:in `rescue_with_handler'
actionpack (5.1.5) lib/action_controller/metal/rescue.rb:23:in `rescue in process_action'
actionpack (5.1.5) lib/action_controller/metal/rescue.rb:20:in `process_action'
actionpack (5.1.5) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (5.1.5) lib/active_support/notifications.rb:166:in `block in instrument'
activesupport (5.1.5) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.1.5) lib/active_support/notifications.rb:166:in `instrument'
actionpack (5.1.5) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (5.1.5) lib/action_controller/metal/params_wrapper.rb:252:in `process_action'
activerecord (5.1.5) lib/active_record/railties/controller_runtime.rb:22:in `process_action'
actionpack (5.1.5) lib/abstract_controller/base.rb:124:in `process'
actionview (5.1.5) lib/action_view/rendering.rb:30:in `process'
actionpack (5.1.5) lib/action_controller/metal.rb:189:in `dispatch'
actionpack (5.1.5) lib/action_controller/metal.rb:253:in `dispatch'
actionpack (5.1.5) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (5.1.5) lib/action_dispatch/routing/route_set.rb:31:in `serve'
actionpack (5.1.5) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (5.1.5) lib/action_dispatch/journey/router.rb:33:in `each'
actionpack (5.1.5) lib/action_dispatch/journey/router.rb:33:in `serve'
actionpack (5.1.5) lib/action_dispatch/routing/route_set.rb:844:in `call'
railties (5.1.5) lib/rails/engine.rb:522:in `call'
railties (5.1.5) lib/rails/railtie.rb:185:in `public_send'
railties (5.1.5) lib/rails/railtie.rb:185:in `method_missing'
actionpack (5.1.5) lib/action_dispatch/routing/mapper.rb:17:in `block in <class:Constraints>'
actionpack (5.1.5) lib/action_dispatch/routing/mapper.rb:46:in `serve'
actionpack (5.1.5) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (5.1.5) lib/action_dispatch/journey/router.rb:33:in `each'
actionpack (5.1.5) lib/action_dispatch/journey/router.rb:33:in `serve'
actionpack (5.1.5) lib/action_dispatch/routing/route_set.rb:844:in `call'
rack (2.0.4) lib/rack/etag.rb:25:in `call'
rack (2.0.4) lib/rack/conditional_get.rb:25:in `call'
rack (2.0.4) lib/rack/head.rb:12:in `call'
rack (2.0.4) lib/rack/session/abstract/id.rb:232:in `context'
rack (2.0.4) lib/rack/session/abstract/id.rb:226:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/cookies.rb:613:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'
activesupport (5.1.5) lib/active_support/callbacks.rb:97:in `run_callbacks'
actionpack (5.1.5) lib/action_dispatch/middleware/callbacks.rb:24:in `call'
rails-dev-tweaks (1.2.0) lib/rails_dev_tweaks/granular_autoload/middleware.rb:36:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.1.5) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.1.5) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.1.5) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.1.5) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.1.5) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.1.5) lib/rails/rack/logger.rb:24:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/request_id.rb:25:in `call'
rack (2.0.4) lib/rack/method_override.rb:22:in `call'
rack (2.0.4) lib/rack/runtime.rb:22:in `call'
activesupport (5.1.5) lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/executor.rb:12:in `call'
rack (2.0.4) lib/rack/lock.rb:17:in `call'
actionpack (5.1.5) lib/action_dispatch/middleware/static.rb:125:in `call'
rack (2.0.4) lib/rack/sendfile.rb:111:in `call'
railties (5.1.5) lib/rails/engine.rb:522:in `call'
thin (1.7.2) lib/thin/connection.rb:86:in `block in pre_process'
thin (1.7.2) lib/thin/connection.rb:84:in `catch'
thin (1.7.2) lib/thin/connection.rb:84:in `pre_process'
thin (1.7.2) lib/thin/connection.rb:53:in `process'
thin (1.7.2) lib/thin/connection.rb:39:in `receive_data'
eventmachine (1.2.5) lib/eventmachine.rb:194:in `run_machine'
eventmachine (1.2.5) lib/eventmachine.rb:194:in `run'
thin (1.7.2) lib/thin/backends/base.rb:73:in `start'
thin (1.7.2) lib/thin/server.rb:162:in `start'
rack (2.0.4) lib/rack/handler/thin.rb:22:in `run'
rack (2.0.4) lib/rack/server.rb:297:in `start'
railties (5.1.5) lib/rails/commands/server/server_command.rb:44:in `start'
railties (5.1.5) lib/rails/commands/server/server_command.rb:135:in `block in perform'
railties (5.1.5) lib/rails/commands/server/server_command.rb:130:in `tap'
railties (5.1.5) lib/rails/commands/server/server_command.rb:130:in `perform'
thor (0.20.0) lib/thor/command.rb:27:in `run'
thor (0.20.0) lib/thor/invocation.rb:126:in `invoke_command'
thor (0.20.0) lib/thor.rb:387:in `dispatch'
railties (5.1.5) lib/rails/command/base.rb:63:in `perform'
railties (5.1.5) lib/rails/command.rb:44:in `invoke'
railties (5.1.5) lib/rails/commands.rb:16:in `<top (required)>'
/Users/navi/dev/decko/decko/decko/lib/decko/commands.rb:77:in `require'
/Users/navi/dev/decko/decko/decko/lib/decko/commands.rb:77:in `<top (required)>'
script/decko:6:in `require'
script/decko:6:in `<main>'
Started GET "/favicon.ico" for 127.0.0.1 at 2018-02-27 22:38:28 +0000
RailsDevTweaks: Skipping ActionDispatch::Reloader hooks for this request.
Processing by CardController#read as
  Parameters: {"id"=>"favicon"}
exception = NoMethodError: undefined method `[]' for #<Class:0x007f8d41618ed0>
Completed 500 Internal Server Error in 44ms (ActiveRecord: 0.0ms)

Please let me know if I am already outdated and need some new command to do the core dev.

Thank you very much :)

Best practices for backup of data and configuration for Decko?

Hi Ethan,

Is there a recommended approach to periodic backup of data and configuration for Decko?

I would like to have a cron job to backup all the data and send it to different location and have it restored there, to make sure nothing is lost. Do you see any issues when e.g. upgrading to new version and having previous version backup?

How do you currently do it at your deployment?

More issues with nginx

Hey, I'm finally getting around to setting up a server using the latest decko, and I'm running into some issues with nginx here. I've set the file/folder permissions to 777 (just to get this up an running), but it still can't seem to read/write several important files on load.

Here's a screenshot:
decko testing

And here are the log files:
production.log
development.log

I've never set up a server like this before and we need this soon, so any help is appreciated.

[style] Best practices for styles, skins, and layouts

Last update looks great, but there's an issue changing styles. I tried to use the new interface to change styles on a fresh install, and it immediately broke everything. I'm getting the error:

Error rendering: +*self+*style (head_stylesheet view) Error rendering: +*self+*style (decko_script_variables view)

Changing the skin back manually doesn't help, and when I tried to revert to the original version I get this error:

414 Request-URI Too Large

You can see the result here: http://ledgefoundation.org/

On a separate but related note, I'd like to know what the best practices are for changing styles. Was I wrong to try to change the style first thing? Are they not really ready yet? Particularly, I'd like to make cards with a very specific layout whenever they're displayed in open view (and ideally some changes to the header when they're closed). In the past, I used SCSS as style cards, but this is brittle, especially as layouts and labels keep changing. Would it be better to implement this as a mod? If so, how would I go about writing a mod to set strict layouts for cards of a certain type? I know that I can set a rule for all cards of that type, but as I said this can be fairly brittle so I'd like to know if there's a better way.

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.