That is is basically a "fork" of blog article i'm constantly returning to. It seems that the blog is down:
Dave Bass proposed this which I picked up for my implementation (here for an 8-chars token):
| // requires Prototype.js, as do many great things | |
| /** | |
| * ActiveSupport for JavaScript library, version '0.1' | |
| * (c) 2007 Nicolas Sanguinetti | |
| * | |
| * ActiveSupport for JavaScript is freely distributable under the terms of an | |
| * MIT-style license. For details, see our web site: | |
| * http://code.google.com/p/active-support-for-javascript/ | |
| * |
| class Post < ApplicaationRecord | |
| attribute :warnings, array: true, default: Set.new | |
| def has_warnings? | |
| publishing_checklist.any? | |
| end | |
| private | |
| def publishing_checklist |
That is is basically a "fork" of blog article i'm constantly returning to. It seems that the blog is down:
Dave Bass proposed this which I picked up for my implementation (here for an 8-chars token):
For example, the list of options is "Foo", "Bar", and "Baz". At the bottom of the list (always at the bottom) the user sees "Add..." as a new option. When she selects that option, the <select> disappears, replaced in place with a focused <input type="text"> ready to accept a new option. It's important to note that this pattern is only usable in cases where the input is stored as a string, and you want to enforce a limited but extensible vocabulary of options. A possible example of this is colors, where you don't want to just let people enter anything, otherwise you would end up with "Gray" and "Grey" and possibly "grey".
app/javascripts/controllers/combo_controller.js
import { Controller } from "stimulus";
export default class extends Controller {
static targets = ['picker'];| # rails new shrtn | |
| # cd shrtn | |
| # rails g model Site url:uniq slug:index | |
| # rake db:migrate | |
| # site.rb | |
| class Site < ApplicationRecord | |
| after_create :generate_slug | |
| delegate :url_helpers, to: 'Rails.application.routes' |
| # == Schema Information | |
| # | |
| # Table name: videos | |
| # | |
| # id :bigint not null, primary key | |
| # created_at :datetime not null | |
| # updated_at :datetime not null | |
| # title :text | |
| # youtube_id :string | |
| # leader_id :bigint |
| trix-toolbar .trix-dialog--heading { | |
| max-width: 190px; | |
| } | |
| .trix-content h1, .trix-content h2, .trix-content h3, .trix-content h4, .trix-content h5, .trix-content h6 { | |
| line-height: 1.2; | |
| margin: 0; | |
| } | |
| .trix-content h1 { |
| # bash/zsh completion support for core Git. | |
| # | |
| # Copyright (C) 2006,2007 Shawn O. Pearce <[email protected]> | |
| # Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). | |
| # Distributed under the GNU General Public License, version 2.0. | |
| # | |
| # The contained completion routines provide support for completing: | |
| # | |
| # *) local and remote branch names | |
| # *) local and remote tag names |
| <?php | |
| define('FILES_BASE',dirname(__FILE__) . '/_files'); | |
| $message = ''; | |
| if(isset($_FILES['menu']['name']) && !empty($_FILES['menu']['name'])){ | |
| $basename = safe_name(basename($_FILES['menu']['name'])); | |
| $ext = strtolower(substr($basename,strrpos($basename,'.') + 1)); | |
| $tmpdir = uniqid( 'file_' ); | |
| $file_destination_dir = FILES_BASE . '/' . $tmpdir; | |
| $uploadfile = $file_destination_dir . '/' . $basename; |
| <?php | |
| header('Content-type: text/plain'); | |
| error_reporting(E_ALL); | |
| ini_set('display_errors', true); | |
| $from = '[email protected]'; | |
| $to = '[email protected]'; | |
| if(mail($to, 'test message from PHP', phpinfo(), array("From: $from"), "-f$from")){ | |
| print('Mail sent successfully'); |