Socket
Book a DemoInstallSign in
Socket

page_stack

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

page_stack

1.0.5
bundlerRubygems
Version published
Maintainers
1
Created
Source

PageStack

Code Climate

Essa GEM fornece a possibilidade de navegação de paǵinas sobrepostas, facilitando assim a abertura de novas páginas em perder o conteúdo anterior.

Requisitos

  • Rails 4.2+
  • jQuery 2+
  • Remotipart (Envio de formulário por Ajax)

Instalação

Adicione essa linha no Gemfile do projeto:

gem 'page_stack'

Instale a gem utilizando o comando abaixo no diretório raiz da aplicação:

$ bundle install

Adicione no seu arquivo application_controller.rb a seguinte configuração:

class ApplicationController < ActionController::Base
  include PageStack
  layout :pagestack_layout 
end

Adicione a seguinte linha no seu arquivo application.css:

*= require pagestack

Adicione a seguinte linha no seu arquivo application.js:

//= require pagestack
//= require jquery.remotipart

Para inicializar o plugin você utilizará o código abaixo:

var pagestack = new PageStack().init();

Seus eventos são baseados em delegator do jQuery e estão vinculados ao document.

Configuração

Você possui três parâmetros de configuração para o pagestack:

  • form : (padrão: 'form') Informe o elemento form que ele deverá o recurso "submit" via AJAX.
  • loading : (padrão: true) Informa se o ícone de carregando será exibido para informar ao usuário o progresso de ações AJAX.
  • closeOnEsc : (padrão: false) Permite fechar o pagestack ativo com a tecla ESC
  • debug : (padrão: false) Exibe as mensagens de testes no console.log
var pagestack = new PageStack({
    form: 'form',
    loading: true,
    closeOnEsc: false,
    debug: false
}).init();

Utilização

Você pode abrir multiplas páginas sobrepostas apenas configurando os links em cada página.

Para indicar que um link abrirá uma pagestack adicione a classe pagestack ao seu elemento:

    = link_to "Abrir Página", root_path, class: 'pagestack'

Para indicar o título da nova página utilize o atributo data pagestack-title:

    = link_to "Abrir Página", root_path, class: 'pagestack', data: {'pagestack-title' => 'Título da minha página sobreposta'}

Caso você abra uma sub-página sobreposta e precise que ao fechar essa página você recarregue o conteúdo da página origem você precisa indicar o atributo data pagestack-refresh-parent-onclose:

    = link_to "Abrir Página", root_path, class: 'pagestack', data: {'pagestack-refresh-parent-onclose' => true}

Caso você precise alterar o conteúdo da própria pagestack (self) ao invés de abrir uma nova você pode informar o atributo data-pagestack-replace-content:

    = link_to "Abrir Página", root_path, class: 'pagestack', data: {'pagestack-refresh-replace-content' => true}

Para ativar/desativar o fechamento do pagestack ativo através da tecla ESC utilize o atributo data-pagestack-close-esc. O padrão é false:

    = link_to "Abrir Página", root_path, class: 'pagestack', data: {'pagestack-esc-close' => 'true'}
    = link_to "Abrir Página", root_path, class: 'pagestack', data: {'pagestack-esc-close' => 'false'}

Eventos Javascript

Ao iniciar o plugin você recebe o retorno e pode atribuir a uma variável (Ex: var pagestack no código de instalação):

var pagestack = PageStack().init();
var current_page = pagestack.getItem(elemento_dentro_do_pagestack);
pagestack.close(elemento_dentro_do_pagestack);
  • init: Método que inicia o pagestack e atriu os eventos
  • close(elemento): Fecha o pagestack de um elemento indicado (pode ser qualquer elemento dentro daquele pagestack, inclusive o próprio elemento pagestack).
  • getItem(elemento): Retorna o elemento "container" do pagestack a partir de um elemento interno indicado.

Comportamento

Formulário

  • Receberá por padrão o atributo data-pagestack-replace-content para carregar o conteúdo de retorno na própria página do formulário.
  • Receberá por padrão o atributo rails data-remote para processamento o "submit" por AJAX através do plugin jquery.remotipart.

Links

  • Os links com method=delete (Links de exclusão) receberão por padrão o atributo rails data-remote para processamento via AJAX.

Referências

FAQs

Package last updated on 25 Oct 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.