pakyow 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/LICENSE +20 -0
- data/README.md +86 -0
- data/lib/commands/console.rb +1 -1
- data/lib/commands/server.rb +1 -1
- data/lib/generators/pakyow/app/templates/Gemfile +13 -4
- data/lib/generators/pakyow/app/templates/README.md +9 -9
- data/lib/generators/pakyow/app/templates/app/lib/routes.rb +4 -5
- data/lib/generators/pakyow/app/templates/{app.rb → app/setup.rb} +7 -1
- data/lib/generators/pakyow/app/templates/app/views/_templates/default.html +31 -0
- data/lib/generators/pakyow/app/templates/app/views/index.html +96 -0
- data/lib/generators/pakyow/app/templates/config.ru +1 -1
- data/lib/generators/pakyow/app/templates/public/apple-touch-icon-precomposed.png +0 -0
- data/lib/generators/pakyow/app/templates/public/apple-touch-icon.png +0 -0
- data/lib/generators/pakyow/app/templates/public/favicon.ico +0 -0
- data/{MIT-LICENSE → lib/generators/pakyow/app/templates/public/scripts/ring/LICENSE} +2 -2
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/fastlink.js +13 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/fastlink.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/loader.js +9 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/loader.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/modal.js +78 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/modal.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/mutable.js +61 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/mutable.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/navigator.js +142 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/navigator.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/notifier.js +20 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/components/notifier.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/pakyow.js +1801 -0
- data/lib/generators/pakyow/app/templates/public/scripts/ring/pakyow.min.js +1 -0
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/LICENSE +20 -0
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/VERSION +1 -0
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/reset.css +2 -0
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/structure.css +2 -0
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/syntax.css +2 -0
- data/lib/generators/pakyow/app/templates/public/styles/pakyow-css/theme.css +2 -0
- data/lib/generators/pakyow/app/templates/spec/integration/app_spec.rb +17 -0
- data/lib/generators/pakyow/app/templates/spec/spec_helper.rb +7 -0
- data/lib/pakyow.rb +6 -4
- data/lib/version.rb +3 -0
- metadata +93 -36
- data/lib/generators/pakyow/app/templates/app/views/_templates/pakyow.html +0 -17
- data/lib/generators/pakyow/app/templates/public/pakyow-css/CHANGES +0 -7
- data/lib/generators/pakyow/app/templates/public/pakyow-css/README.md +0 -3
- data/lib/generators/pakyow/app/templates/public/pakyow-css/VERSION +0 -1
- data/lib/generators/pakyow/app/templates/public/pakyow-css/examples/extension.css +0 -7
- data/lib/generators/pakyow/app/templates/public/pakyow-css/examples/structure-fluid.html +0 -151
- data/lib/generators/pakyow/app/templates/public/pakyow-css/examples/structure.html +0 -157
- data/lib/generators/pakyow/app/templates/public/pakyow-css/examples/styled.html +0 -114
- data/lib/generators/pakyow/app/templates/public/pakyow-css/reset.css +0 -46
- data/lib/generators/pakyow/app/templates/public/pakyow-css/structure.css +0 -199
- data/lib/generators/pakyow/app/templates/public/pakyow-css/style.css +0 -191
- data/lib/generators/pakyow/app/templates/public/pakyow-css/syntax.css +0 -279
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0ef3516f5955639e910668c039ccc52302453426
|
|
4
|
+
data.tar.gz: 87dec5942d0b34f6109dd2f8e4f5452ae21ce27e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 11e159d2d315517b53f3ad49725d04e2f7608123439443c48f63e4168beeeb1ac795015327cf72eb0587de3d4cfa1132d9b780053433e76afef85ae5fd11a926
|
|
7
|
+
data.tar.gz: cbaa7ae39e057a0d3a89d75b9636b695635208984a8dccfa5bd3ddac7f2612d03b5d7d2a91efd56626e180ba06be5cf173bb1693f566afb6a4f4b4282aeb1b18
|
data/CHANGELOG.md
ADDED
data/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2011-2015 Bryan Powell
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
[gem]: https://rubygems.org/gems/pakyow
|
|
2
|
+
[travis]: https://travis-ci.org/pakyow/pakyow
|
|
3
|
+
[gemnasium]: https://gemnasium.com/pakyow/pakyow
|
|
4
|
+
|
|
5
|
+
# Pakyow Framework [](https://gitter.im/pakyow/chat)
|
|
6
|
+
|
|
7
|
+
Pakyow is a framework for building modern websites and web apps. Views update in
|
|
8
|
+
realtime to stay in sync with backend state. This is done using a traditional,
|
|
9
|
+
backend-driven architecture, which means business logic is written once and
|
|
10
|
+
stays on the server (write no JavaScript).
|
|
11
|
+
|
|
12
|
+
Pakyow is also designed with progressive enhancement in mind. Because views are
|
|
13
|
+
rendered on the server, they remain accessible to users who happen to be using
|
|
14
|
+
unsupported browsers. The realtime layer is simply disabled, while all content
|
|
15
|
+
continues to remain accessible.
|
|
16
|
+
|
|
17
|
+
There are three core concepts you should be familiar with:
|
|
18
|
+
|
|
19
|
+
**View-First Development**
|
|
20
|
+
|
|
21
|
+
View-First Development is a process that enables the presentation layer of a
|
|
22
|
+
website or web app to be built completely separate from the backend code. Read
|
|
23
|
+
more:
|
|
24
|
+
|
|
25
|
+
- http://pakyow.org/docs/presentation
|
|
26
|
+
|
|
27
|
+
**Simple State Propagation**
|
|
28
|
+
|
|
29
|
+
Simple State Propagation is the mechanism through which Pakyow propagates
|
|
30
|
+
changes in state from one client to another. It prioritizes user trust and makes
|
|
31
|
+
it easier to reason about your program. Read more:
|
|
32
|
+
|
|
33
|
+
- http://pakyow.org/docs/concepts/simple-state-propagation
|
|
34
|
+
|
|
35
|
+
**View Transformation Protocol**
|
|
36
|
+
|
|
37
|
+
The View Transformation Protocol is a way to represent view rendering as a set
|
|
38
|
+
of instructions that can later be applied to the view template. Pakyow
|
|
39
|
+
implements this protocol on the backend for initial rendering and in
|
|
40
|
+
[Ring](https://github.com/pakyow/ring) for client-side rendering. Read more:
|
|
41
|
+
|
|
42
|
+
- http://pakyow.org/docs/concepts/view-transformation-protocol
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
[][gem]
|
|
47
|
+
[][travis]
|
|
48
|
+
[][gemnasium]
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# Getting Started
|
|
53
|
+
|
|
54
|
+
1. Install Pakyow:
|
|
55
|
+
|
|
56
|
+
`gem install pakyow`
|
|
57
|
+
|
|
58
|
+
2. Create a new Pakyow project from the command line:
|
|
59
|
+
|
|
60
|
+
`pakyow new webapp`
|
|
61
|
+
|
|
62
|
+
3. Move to the new directory and start the server:
|
|
63
|
+
|
|
64
|
+
`cd webapp; pakyow server`
|
|
65
|
+
|
|
66
|
+
4. You'll find your project running at [http://localhost:3000](http://localhost:3000)!
|
|
67
|
+
|
|
68
|
+
# Next Steps
|
|
69
|
+
|
|
70
|
+
The following resources might be handy:
|
|
71
|
+
|
|
72
|
+
- [Website](http://pakyow.org)
|
|
73
|
+
- [Docs](http://pakyow.org/docs)
|
|
74
|
+
- [Code](http://github.com/pakyow/pakyow)
|
|
75
|
+
|
|
76
|
+
Want to keep up with the latest development? Follow along:
|
|
77
|
+
|
|
78
|
+
- [Blog](http://pakyow.org/blog)
|
|
79
|
+
- [Forums](http://forums.pakyow.org)
|
|
80
|
+
- [Gitter](https://gitter.im/pakyow/chat)
|
|
81
|
+
- [Twitter](http://twitter.com/pakyow)
|
|
82
|
+
|
|
83
|
+
# License
|
|
84
|
+
|
|
85
|
+
Pakyow is released free and open-source under the [MIT
|
|
86
|
+
License](http://opensource.org/licenses/MIT).
|
data/lib/commands/console.rb
CHANGED
data/lib/commands/server.rb
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# live on the edge and uncomment this line
|
|
4
|
+
# gem 'pakyow', github: 'pakyow/pakyow'
|
|
4
5
|
|
|
5
|
-
#
|
|
6
|
-
gem
|
|
6
|
+
# use the latest released version
|
|
7
|
+
gem 'pakyow', '0.10'
|
|
8
|
+
|
|
9
|
+
# app server
|
|
10
|
+
gem 'puma', platforms: :ruby
|
|
11
|
+
gem 'thin', platforms: :mswin
|
|
12
|
+
|
|
13
|
+
group :test do
|
|
14
|
+
gem 'rspec'
|
|
15
|
+
end
|
|
7
16
|
|
|
8
17
|
# your gems here
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
This is a Pakyow v0.
|
|
1
|
+
This is a Pakyow v0.10 project.
|
|
2
2
|
|
|
3
3
|
# Getting Started
|
|
4
4
|
|
|
5
|
-
Start the
|
|
5
|
+
Start the server:
|
|
6
6
|
|
|
7
7
|
`pakyow server`
|
|
8
8
|
|
|
9
9
|
You'll find your app running at [http://localhost:3000](http://localhost:3000)!
|
|
10
10
|
|
|
11
|
-
Need to interact with your
|
|
11
|
+
Need to interact with your code? Fire up a console:
|
|
12
12
|
|
|
13
13
|
`pakyow console`
|
|
14
14
|
|
|
@@ -16,13 +16,13 @@ Need to interact with your app? Fire up a console:
|
|
|
16
16
|
|
|
17
17
|
The following resources might be handy:
|
|
18
18
|
|
|
19
|
-
- [Website](http://pakyow.
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
22
|
-
- [Code](http://github.com/metabahn/pakyow)
|
|
19
|
+
- [Website](http://pakyow.org)
|
|
20
|
+
- [Docs](http://pakyow.org/docs)
|
|
21
|
+
- [Code](http://github.com/pakyow/pakyow)
|
|
23
22
|
|
|
24
23
|
Want to keep up with the latest development? Follow along:
|
|
25
24
|
|
|
26
|
-
- [Blog](http://pakyow.
|
|
27
|
-
- [
|
|
25
|
+
- [Blog](http://pakyow.org/blog)
|
|
26
|
+
- [Forums](http://forums.pakyow.org)
|
|
27
|
+
- [Gitter](https://gitter.im/pakyow/chat)
|
|
28
28
|
- [Twitter](http://twitter.com/pakyow)
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
require 'bundler/setup'
|
|
2
|
-
|
|
3
2
|
require 'pakyow'
|
|
4
3
|
|
|
5
4
|
Pakyow::App.define do
|
|
6
5
|
configure :global do
|
|
6
|
+
Bundler.require :default, Pakyow::Config.env
|
|
7
|
+
|
|
7
8
|
# put global config here and they'll be available across environments
|
|
8
9
|
app.name = 'Pakyow'
|
|
9
10
|
end
|
|
@@ -24,4 +25,9 @@ Pakyow::App.define do
|
|
|
24
25
|
configure :production do
|
|
25
26
|
# put your production config here
|
|
26
27
|
end
|
|
28
|
+
|
|
29
|
+
middleware do |builder|
|
|
30
|
+
# TODO: you will most definitely want to change this secret
|
|
31
|
+
builder.use Rack::Session::Cookie, key: "#{Pakyow::Config.app.name}.session", secret: 'sekret'
|
|
32
|
+
end
|
|
27
33
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<title>
|
|
5
|
+
Pakyow
|
|
6
|
+
</title>
|
|
7
|
+
|
|
8
|
+
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport">
|
|
9
|
+
|
|
10
|
+
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/reset.css">
|
|
11
|
+
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/structure.css">
|
|
12
|
+
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/syntax.css">
|
|
13
|
+
<link rel="stylesheet" type="text/css" href="/styles/pakyow-css/theme.css">
|
|
14
|
+
|
|
15
|
+
<script src="/scripts/ring/pakyow.js"></script>
|
|
16
|
+
</head>
|
|
17
|
+
|
|
18
|
+
<body>
|
|
19
|
+
<main class="container-1">
|
|
20
|
+
<!-- @container -->
|
|
21
|
+
</main>
|
|
22
|
+
|
|
23
|
+
<footer class="container-1 margin-t">
|
|
24
|
+
<p>
|
|
25
|
+
Built with
|
|
26
|
+
<svg class="icon" width="10" height="10" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M896 1664q-26 0-44-18l-624-602q-10-8-27.5-26t-55.5-65.5-68-97.5-53.5-121-23.5-138q0-220 127-344t351-124q62 0 126.5 21.5t120 58 95.5 68.5 76 68q36-36 76-68t95.5-68.5 120-58 126.5-21.5q224 0 351 124t127 344q0 221-229 450l-623 600q-18 18-44 18z"></svg>
|
|
27
|
+
and <a href="http://pakyow.org">Pakyow</a>.
|
|
28
|
+
</p>
|
|
29
|
+
</footer>
|
|
30
|
+
</body>
|
|
31
|
+
</html>
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<h1>
|
|
2
|
+
Welcome to Pakyow :)
|
|
3
|
+
</h1>
|
|
4
|
+
|
|
5
|
+
<p class="lead margin-t">
|
|
6
|
+
The following links might be handy:
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<ul>
|
|
10
|
+
<li>
|
|
11
|
+
<a href="http://pakyow.org/">Official Website</a>
|
|
12
|
+
</li>
|
|
13
|
+
|
|
14
|
+
<li>
|
|
15
|
+
<a href="http://pakyow.org/docs">Guides & Documentation</a>
|
|
16
|
+
</li>
|
|
17
|
+
|
|
18
|
+
<li>
|
|
19
|
+
<a href="http://github.com/pakyow/pakyow">Source Code</a>
|
|
20
|
+
</li>
|
|
21
|
+
</ul>
|
|
22
|
+
|
|
23
|
+
<h3 class="margin-t">
|
|
24
|
+
Show Your Support
|
|
25
|
+
</h3>
|
|
26
|
+
|
|
27
|
+
<p>
|
|
28
|
+
Give us a star on <a href="http://github.com/pakyow">Github</a>. But don't
|
|
29
|
+
stop there – tell your friends about the project! Writing blog posts,
|
|
30
|
+
giving talks to local user groups, and screencasting your experiences with
|
|
31
|
+
Pakyow all help spread the word. We'll return the favor by helping promote
|
|
32
|
+
the things you create. Also consider adding a link back to pakyow.org from your
|
|
33
|
+
project.
|
|
34
|
+
</p>
|
|
35
|
+
|
|
36
|
+
<ul class="plain social-links inline margin-t">
|
|
37
|
+
<li>
|
|
38
|
+
<iframe src="https://ghbtns.com/github-btn.html?user=pakyow&repo=pakyow&type=star&count=true&v=2" frameborder="0" scrolling="0" width="85px" height="20px"></iframe>
|
|
39
|
+
</li>
|
|
40
|
+
|
|
41
|
+
<li>
|
|
42
|
+
<a href="https://twitter.com/pakyow" class="twitter-follow-button" data-show-count="false">Follow @pakyow</a>
|
|
43
|
+
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
|
44
|
+
</li>
|
|
45
|
+
|
|
46
|
+
<li>
|
|
47
|
+
<div id="fb-root"></div>
|
|
48
|
+
<script>(function(d, s, id) {
|
|
49
|
+
var js, fjs = d.getElementsByTagName(s)[0];
|
|
50
|
+
if (d.getElementById(id)) return;
|
|
51
|
+
js = d.createElement(s); js.id = id;
|
|
52
|
+
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.3&appId=1611480632444271";
|
|
53
|
+
fjs.parentNode.insertBefore(js, fjs);
|
|
54
|
+
}(document, 'script', 'facebook-jssdk'));</script>
|
|
55
|
+
<div class="fb-like" data-href="https://www.facebook.com/pakyow.rb" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div>
|
|
56
|
+
</li>
|
|
57
|
+
|
|
58
|
+
<li>
|
|
59
|
+
<!-- Place this tag in your head or just before your close body tag. -->
|
|
60
|
+
<script src="https://apis.google.com/js/platform.js" async defer></script>
|
|
61
|
+
<!-- Place this tag where you want the +1 button to render. -->
|
|
62
|
+
<div class="g-plusone" data-size="medium" data-href="http://pakyow.org"></div>
|
|
63
|
+
</li>
|
|
64
|
+
</ul>
|
|
65
|
+
|
|
66
|
+
<div style="clear:both"></div>
|
|
67
|
+
|
|
68
|
+
<h3 class="margin-t">
|
|
69
|
+
Join the Conversation
|
|
70
|
+
</h3>
|
|
71
|
+
|
|
72
|
+
<p>
|
|
73
|
+
Come hang out on our <a href="https://gitter.im/pakyow/chat">Gitter channel</a>,
|
|
74
|
+
which took the place of our IRC channel in 2015. You should also join the
|
|
75
|
+
<a href="http://forums.pakyow.org">forums</a>, where early discussions about new Pakyow features often take place.
|
|
76
|
+
Don't forget to lend a hand – ask and answer <a href="http://stackoverflow.com/questions/tagged/pakyow">questions on Stack Overflow</a>.
|
|
77
|
+
</p>
|
|
78
|
+
|
|
79
|
+
<h3 class="margin-t">
|
|
80
|
+
Contribute to the Project
|
|
81
|
+
</h3>
|
|
82
|
+
|
|
83
|
+
<p>
|
|
84
|
+
We'd love your contributions to Pakyow code or documentation. Everything is hosted publicly on <a href="http://github.com/pakyow">Github</a>.
|
|
85
|
+
Looking through the list of open issues would be a great place to start. If you need more direction, jump on
|
|
86
|
+
one of the communication channels listed above; we're happy to help!
|
|
87
|
+
</p>
|
|
88
|
+
|
|
89
|
+
<h3 class="margin-t">
|
|
90
|
+
Report Problems you Encounter
|
|
91
|
+
</h3>
|
|
92
|
+
|
|
93
|
+
<p>
|
|
94
|
+
Found a bug or have an idea for a new feature?
|
|
95
|
+
Open up an issue on our <a href="https://github.com/pakyow/pakyow/issues">Github issues page</a>.
|
|
96
|
+
</p>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright (c)
|
|
1
|
+
Copyright (c) 2015 Bryan Powell
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
4
|
a copy of this software and associated documentation files (the
|
|
@@ -17,4 +17,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
|
17
17
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
18
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
19
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
pw.component.register('fastlink', function (view, config) {
|
|
2
|
+
var that = this;
|
|
3
|
+
|
|
4
|
+
if (window.history) {
|
|
5
|
+
view.node.addEventListener('click', function (evt) {
|
|
6
|
+
evt.preventDefault();
|
|
7
|
+
window.history.pushState({ uri: this.href }, this.href, this.href);
|
|
8
|
+
return false;
|
|
9
|
+
});
|
|
10
|
+
} else {
|
|
11
|
+
// unsupported
|
|
12
|
+
}
|
|
13
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pw.component.register("fastlink",function(t,e){window.history&&t.node.addEventListener("click",function(t){return t.preventDefault(),window.history.pushState({uri:this.href},this.href,this.href),!1})});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pw.component.register("loader",function(o){this.listen("socket:loading",function(){o.node.classList.add("ui-show")}),this.listen("socket:loaded",function(){o.node.classList.remove("ui-show")})});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
pw.component.register('modal', function (view, config, name, id) {
|
|
2
|
+
var self = this;
|
|
3
|
+
var channel = 'modal:' + id;
|
|
4
|
+
var blinder;
|
|
5
|
+
var modal;
|
|
6
|
+
|
|
7
|
+
this.listen(channel + ':navigator:enter', function (response) {
|
|
8
|
+
if (!blinder) {
|
|
9
|
+
blinder = document.createElement('DIV');
|
|
10
|
+
blinder.classList.add('ui-modal-blinder');
|
|
11
|
+
|
|
12
|
+
modal = document.createElement('DIV');
|
|
13
|
+
modal.classList.add('ui-modal');
|
|
14
|
+
|
|
15
|
+
blinder.appendChild(modal);
|
|
16
|
+
document.body.appendChild(blinder);
|
|
17
|
+
|
|
18
|
+
blinder.addEventListener('click', function (evt) {
|
|
19
|
+
if (evt.target === blinder) {
|
|
20
|
+
evt.preventDefault();
|
|
21
|
+
self.close();
|
|
22
|
+
|
|
23
|
+
var uri = window.location.pathname;
|
|
24
|
+
|
|
25
|
+
var opts = {
|
|
26
|
+
uri: uri
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
window.history.pushState(opts, uri, uri);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
modal.innerHTML = response.body;
|
|
35
|
+
pw.component.findAndInit(blinder);
|
|
36
|
+
|
|
37
|
+
blinder.classList.add('ui-appear');
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
this.listen(channel + ':navigator:exit', function () {
|
|
41
|
+
console.log('exit');
|
|
42
|
+
self.close();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
this.listen(channel + ':navigator:boot', function (uri) {
|
|
46
|
+
self.load(uri);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
view.node.addEventListener('click', function (evt) {
|
|
50
|
+
evt.preventDefault();
|
|
51
|
+
self.load(this.href);
|
|
52
|
+
return false;
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
this.load = function (uri) {
|
|
56
|
+
if (!window.socket) {
|
|
57
|
+
document.location = uri;
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var opts = {
|
|
62
|
+
uri: uri,
|
|
63
|
+
context: 'modal:' + id
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (config.container) {
|
|
67
|
+
opts.container = config.container;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
window.history.pushState(opts, uri, uri);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
this.close = function () {
|
|
74
|
+
pw.node.remove(blinder);
|
|
75
|
+
blinder = null;
|
|
76
|
+
modal = null;
|
|
77
|
+
};
|
|
78
|
+
});
|