You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by hu...@apache.org on 2016/09/05 19:06:08 UTC

[4/4] incubator-ponymail git commit: regen JS

regen JS


Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/37f71028
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/37f71028
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/37f71028

Branch: refs/heads/coffee-and-cake
Commit: 37f71028bbca3f7a16258d59e1322d512193f81d
Parents: 46511fe
Author: Daniel Gruno <hu...@apache.org>
Authored: Mon Sep 5 21:05:50 2016 +0200
Committer: Daniel Gruno <hu...@apache.org>
Committed: Mon Sep 5 21:05:50 2016 +0200

----------------------------------------------------------------------
 site/js/ponymail-coffee.js | 151 ++++++++++++++++++++++++++++++++++------
 1 file changed, 128 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/37f71028/site/js/ponymail-coffee.js
----------------------------------------------------------------------
diff --git a/site/js/ponymail-coffee.js b/site/js/ponymail-coffee.js
index 9b0f28d..e1f7e22 100644
--- a/site/js/ponymail-coffee.js
+++ b/site/js/ponymail-coffee.js
@@ -1,5 +1,5 @@
 // Generated by CoffeeScript 1.9.3
-var BasicEmailDisplay, BasicListView, Calendar, DateEmailDisplay, HTML, HTTPRequest, SingleListView, ThreadedEmailDisplay, calendar_months, cog, dbRead, dbWrite, dealWithKeyboard, e, genColors, get, hasRead, hsl2rgb, isArray, isHash, listView, listviewScaffolding, markRead, maxLists, parseURL, pendingURLStatus, pending_spinner_at, pending_url_operations, pm_snap, pm_storage_available, pm_storage_globvar, ponymail_current_email, ponymail_current_listview, ponymail_domain, ponymail_email_open, ponymail_list, ponymail_list_json, ponymail_listname, ponymail_lists, ponymail_month, ponymail_preferences, ponymail_query, ponymail_quote_regex, ponymail_stored_email, ponymail_url_regex, ponymail_version, readEmail, renderListView, set, setupAccount, spinCheck, testCoffee, testToggle, toggleMonth, toggleQuote, toggleYear, txt,
+var BasicEmailDisplay, BasicListView, Calendar, DateEmailDisplay, HTML, HTTPRequest, SingleListView, ThreadedEmailDisplay, calendar_months, cog, dbRead, dbWrite, dealWithKeyboard, e, footerScaffolding, genColors, get, hasRead, headerScaffolding, hsl2rgb, isArray, isHash, listView, listviewScaffolding, markRead, maxLists, parseURL, pendingURLStatus, pending_spinner_at, pending_url_operations, pm_snap, pm_storage_available, pm_storage_globvar, ponymail_current_email, ponymail_current_listview, ponymail_display_models, ponymail_domain, ponymail_email_open, ponymail_list, ponymail_list_json, ponymail_listname, ponymail_lists, ponymail_listview_models, ponymail_month, ponymail_preferences, ponymail_query, ponymail_quote_regex, ponymail_register_display, ponymail_register_listview, ponymail_stored_email, ponymail_url_regex, ponymail_version, readEmail, renderListView, scaffoldingEmailCallback, set, setupAccount, spinCheck, testCoffee, testToggle, threadScaffolding, toggleMonth, toggleQuot
 e, toggleYear, txt,
   extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
   hasProp = {}.hasOwnProperty;
 
@@ -322,6 +322,45 @@ ponymail_preferences = {};
  */
 
 
+/* Various register functions */
+
+ponymail_listview_models = {};
+
+ponymail_display_models = {};
+
+ponymail_register_listview = function(name, title, cl) {
+  return ponymail_listview_models[name] = {
+    title: title,
+    "class": cl
+  };
+};
+
+ponymail_register_display = function(name, title, cl) {
+  return ponymail_display_models[name] = {
+    title: title,
+    "class": cl
+  };
+};
+
+
+/*
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
+
+
 /**
  * HTML: DOM creator class
  * args:
@@ -838,6 +877,8 @@ BasicEmailDisplay = (function() {
 
 })();
 
+ponymail_register_display('default', "Single email view", BasicEmailDisplay);
+
 
 /* toggleQuote: show/hide a quote */
 
@@ -986,6 +1027,8 @@ DateEmailDisplay = (function(superClass) {
 
 })(BasicEmailDisplay);
 
+ponymail_register_display('date', "Stacked view", DateEmailDisplay);
+
 
 /*
  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -1010,30 +1053,37 @@ DateEmailDisplay = (function(superClass) {
 ThreadedEmailDisplay = (function(superClass) {
   extend(ThreadedEmailDisplay, superClass);
 
-  function ThreadedEmailDisplay(parent1, mid1, index) {
+  function ThreadedEmailDisplay(parent1, mid1, index, tjson) {
     var me, thread;
     this.parent = parent1;
     this.mid = mid1;
+    if (tjson == null) {
+      tjson = null;
+    }
     this.placeholder = get("placeholder_" + this.mid) || new HTML('div', {
       "class": "email_placeholder",
       id: "placeholder_" + this.mid
     });
-
-    /* Inject into listview or body */
-    this.parent.inject(this.placeholder);
-
-    /* Make sure it's empty, may have been used before! */
-    this.placeholder = this.placeholder.empty();
-    this.placeholder.show(true);
     me = this;
 
     /* Find the thread or fake one */
     thread = {
       tid: this.mid
     };
-    if (index && ponymail_current_listview && ponymail_current_listview.json.thread_struct[index]) {
+    if (tjson) {
+      thread = tjson;
+      this.mid = tjson.mid;
+      this.parent = get('email_placeholder');
+    } else if (index && ponymail_current_listview && ponymail_current_listview.json.thread_struct[index]) {
       thread = ponymail_current_listview.json.thread_struct[index];
     }
+
+    /* Inject into listview or body */
+    this.parent.inject(this.placeholder);
+
+    /* Make sure it's empty, may have been used before! */
+    this.placeholder = this.placeholder.empty();
+    this.placeholder.show(true);
     this.threadedFetch(this.placeholder, thread, 1);
     return this;
   }
@@ -1108,6 +1158,8 @@ ThreadedEmailDisplay = (function(superClass) {
 
 })(BasicEmailDisplay);
 
+ponymail_register_display('threaded', "Threaded view", ThreadedEmailDisplay);
+
 
 /*
  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -1892,6 +1944,8 @@ BasicListView = (function() {
 
 })();
 
+ponymail_register_listview('default', 'Compact (threaded) theme', BasicListView);
+
 
 /*
  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -2237,6 +2291,8 @@ SingleListView = (function(superClass) {
 
 })(BasicListView);
 
+ponymail_register_listview('single', 'Single email theme', SingleListView);
+
 
 /*
  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -2531,10 +2587,10 @@ setupAccount = function(json, state) {
 
 /* This is the basic scaffolding for all pages */
 
-listviewScaffolding = function() {
+headerScaffolding = function() {
 
   /* Start off by making the top menu */
-  var calHolder, footer, header, listDiv, logo, mainDiv, menu, r, ul;
+  var logo, menu, ul;
   menu = new HTML('div', {
     id: "topMenu"
   });
@@ -2555,7 +2611,29 @@ listviewScaffolding = function() {
     }
   })));
   ul.inject(logo);
-  menu.inject(ul);
+  return menu.inject(ul);
+};
+
+footerScaffolding = function() {
+
+  /* Add a footer */
+  var footer;
+  footer = new HTML('div', {
+    id: "footer"
+  });
+  document.body.inject(footer);
+  return footer.inject([
+    "Powered by ", new HTML('a', {
+      href: 'https://ponymail.incubator.apache.org/'
+    }, "Apache Pony Mail (Incubating) v/" + ponymail_version), ". Copyright 2016, the Apache Software Foundation."
+  ]);
+};
+
+listviewScaffolding = function() {
+
+  /* Header scaffolding */
+  var calHolder, header, listDiv, mainDiv, r;
+  headerScaffolding();
 
   /* Now, make the base div */
   mainDiv = new HTML('div', {
@@ -2583,16 +2661,8 @@ listviewScaffolding = function() {
   });
   mainDiv.inject(listDiv);
 
-  /* And of course, a footer */
-  footer = new HTML('div', {
-    id: "footer"
-  });
-  document.body.inject(footer);
-  footer.inject([
-    "Powered by ", new HTML('a', {
-      href: 'https://ponymail.incubator.apache.org/'
-    }, "Apache Pony Mail (Incubating) v/" + ponymail_version), ". Copyright 2016, the Apache Software Foundation."
-  ]);
+  /* Footer */
+  footerScaffolding();
 
   /* Make an API call to the preferences script, have it call back to listView once done */
   return r = new HTTPRequest("api/preferences.lua", {
@@ -2603,6 +2673,41 @@ listviewScaffolding = function() {
   });
 };
 
+
+/* Permalink view callback */
+
+scaffoldingEmailCallback = function(json, state) {
+  e = new ThreadedEmailDisplay(null, null, null, json.thread);
+};
+
+
+/* Permalink view */
+
+threadScaffolding = function() {
+
+  /* Header scaffolding */
+  var mainDiv, mid, r;
+  headerScaffolding();
+
+  /* Now, make the base div */
+  mainDiv = new HTML('div', {
+    id: "email_placeholder",
+    style: {
+      width: "90%"
+    }
+  });
+  document.body.inject(mainDiv);
+
+  /* Footer */
+  footerScaffolding();
+
+  /* Make an API call to the preferences script, have it call back to listView once done */
+  mid = location.href.match(/thread\.html\/(.+)/)[1];
+  return r = new HTTPRequest("api/thread.lua?id=" + mid, {
+    callback: scaffoldingEmailCallback
+  });
+};
+
 testCoffee = function() {
 
   /* Get main div from HTML */