|
|
@@ -0,0 +1,125 @@
|
|
|
+
|
|
|
+[% autoescape false %]
|
|
|
+{% autoescape false %}
|
|
|
+
|
|
|
+/**
|
|
|
+ * Set up page and script parameters
|
|
|
+ */
|
|
|
+var page = require('webpage').create(),
|
|
|
+ system = require('system'),
|
|
|
+ response = {},
|
|
|
+ debug = [],
|
|
|
+ logs = [],
|
|
|
+ procedure = {},
|
|
|
+ resources = 0,
|
|
|
+ timeout;
|
|
|
+
|
|
|
+/**
|
|
|
+ * Global variables
|
|
|
+ */
|
|
|
+[[ engine.load('global_variables') ]]
|
|
|
+
|
|
|
+/**
|
|
|
+ * Define width & height of capture
|
|
|
+ */
|
|
|
+[[ engine.load('page_clip_rect') ]]
|
|
|
+
|
|
|
+/**
|
|
|
+ * Define paper size.
|
|
|
+ */
|
|
|
+[[ engine.load('page_paper_size') ]]
|
|
|
+
|
|
|
+/**
|
|
|
+ * Define viewport size.
|
|
|
+ */
|
|
|
+[[ engine.load('page_viewport_size') ]]
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Define custom headers.
|
|
|
+ */
|
|
|
+[[ engine.load('page_custom_headers') ]]
|
|
|
+
|
|
|
+/**
|
|
|
+ * Page settings
|
|
|
+ */
|
|
|
+[[ engine.load('page_settings') ]]
|
|
|
+
|
|
|
+/**
|
|
|
+ * On resource timeout
|
|
|
+ */
|
|
|
+page.onResourceTimeout = function (error) {
|
|
|
+ [[ engine.load('page_on_resource_timeout') ]]
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * On resource requested
|
|
|
+ */
|
|
|
+page.onResourceRequested = function (req) {
|
|
|
+
|
|
|
+ [[ engine.load('page_on_resource_requested') ]]
|
|
|
+
|
|
|
+ resources++;
|
|
|
+ window.clearTimeout(timeout);
|
|
|
+
|
|
|
+ debug.push(new Date().toISOString().slice(0, -5) + ' [INFO] PhantomJS - Resource requested (' + req.url + ')');
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * On resource received
|
|
|
+ */
|
|
|
+page.onResourceReceived = function (res) {
|
|
|
+
|
|
|
+ var resource = res; // To be removed in version 5.0
|
|
|
+
|
|
|
+ [[ engine.load('page_on_resource_received') ]]
|
|
|
+
|
|
|
+ if(!res.stage || res.stage === 'end') {
|
|
|
+
|
|
|
+ resources--;
|
|
|
+ debug.push(new Date().toISOString().slice(0, -5) + ' [INFO] PhantomJS - Resource received (' + res.url + ') ~ ' + res.status);
|
|
|
+
|
|
|
+ if (resources === 0) {
|
|
|
+
|
|
|
+ timeout = window.setTimeout(function() {
|
|
|
+ procedure.execute('success');
|
|
|
+ }, 300);
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * Handle page errors
|
|
|
+ */
|
|
|
+page.onError = function (msg, trace) {
|
|
|
+ [[ engine.load('page_on_error') ]]
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * Handle global errors
|
|
|
+ */
|
|
|
+phantom.onError = function(msg, trace) {
|
|
|
+ [[ engine.load('phantom_on_error') ]]
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * Open page
|
|
|
+ */
|
|
|
+page.open ('{{ input.getUrl() }}', '{{ input.getMethod() }}', '{{ input.getBody() }}', function (status) {
|
|
|
+
|
|
|
+ [[ engine.load('page_body_styles') ]]
|
|
|
+
|
|
|
+ window.setTimeout(function () {
|
|
|
+ procedure.execute(status);
|
|
|
+ }, {{ input.getTimeout() - 200 }});
|
|
|
+});
|
|
|
+
|
|
|
+/**
|
|
|
+ * Execute procedure
|
|
|
+ */
|
|
|
+procedure.execute = function (status) {
|
|
|
+ [[ engine.load( 'procedure_' ~ procedure_type ) ]]
|
|
|
+};
|
|
|
+
|
|
|
+{% endautoescape %}
|
|
|
+[% endautoescape %]
|