http_lazy.proc 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. [% autoescape false %]
  2. {% autoescape false %}
  3. /**
  4. * Set up page and script parameters
  5. */
  6. var page = require('webpage').create(),
  7. system = require('system'),
  8. response = {},
  9. debug = [],
  10. logs = [],
  11. procedure = {},
  12. resources = 0,
  13. timeout;
  14. /**
  15. * Global variables
  16. */
  17. [[ engine.load('global_variables') ]]
  18. /**
  19. * Define width & height of capture
  20. */
  21. [[ engine.load('page_clip_rect') ]]
  22. /**
  23. * Define paper size.
  24. */
  25. [[ engine.load('page_paper_size') ]]
  26. /**
  27. * Define viewport size.
  28. */
  29. [[ engine.load('page_viewport_size') ]]
  30. /**
  31. * Define custom headers.
  32. */
  33. [[ engine.load('page_custom_headers') ]]
  34. /**
  35. * Page settings
  36. */
  37. [[ engine.load('page_settings') ]]
  38. /**
  39. * Page cookies
  40. */
  41. [[ engine.load('page_cookies') ]]
  42. /**
  43. * On resource timeout
  44. */
  45. page.onResourceTimeout = function (error) {
  46. [[ engine.load('page_on_resource_timeout') ]]
  47. };
  48. /**
  49. * On resource requested
  50. */
  51. page.onResourceRequested = function (req) {
  52. [[ engine.load('page_on_resource_requested') ]]
  53. resources++;
  54. window.clearTimeout(timeout);
  55. };
  56. /**
  57. * On resource received
  58. */
  59. page.onResourceReceived = function (res) {
  60. var resource = res; // To be removed in version 5.0
  61. [[ engine.load('page_on_resource_received') ]]
  62. if(!res.stage || res.stage === 'end') {
  63. resources--;
  64. if (resources === 0) {
  65. timeout = window.setTimeout(function() {
  66. procedure.execute('success');
  67. }, 300);
  68. }
  69. }
  70. };
  71. /**
  72. * Handle page errors
  73. */
  74. page.onError = function (msg, trace) {
  75. [[ engine.load('page_on_error') ]]
  76. };
  77. /**
  78. * Handle global errors
  79. */
  80. phantom.onError = function(msg, trace) {
  81. [[ engine.load('phantom_on_error') ]]
  82. };
  83. /**
  84. * Open page
  85. */
  86. page.open ('{{ input.getUrl() }}', '{{ input.getMethod() }}', '{{ input.getBody() }}', function (status) {
  87. [[ engine.load('page_body_styles') ]]
  88. window.setTimeout(function () {
  89. procedure.execute(status);
  90. }, {{ input.getTimeout() - 200 }});
  91. });
  92. /**
  93. * Execute procedure
  94. */
  95. procedure.execute = function (status) {
  96. [[ engine.load( 'procedure_' ~ procedure_type ) ]]
  97. };
  98. {% endautoescape %}
  99. [% endautoescape %]