aboutsummaryrefslogtreecommitdiff
path: root/data/stuff/test/tab-posts.js
diff options
context:
space:
mode:
Diffstat (limited to 'data/stuff/test/tab-posts.js')
-rw-r--r--data/stuff/test/tab-posts.js151
1 files changed, 151 insertions, 0 deletions
diff --git a/data/stuff/test/tab-posts.js b/data/stuff/test/tab-posts.js
new file mode 100644
index 0000000..b9692a5
--- /dev/null
+++ b/data/stuff/test/tab-posts.js
@@ -0,0 +1,151 @@
+jQuery(function($) {
+ "use strict";
+
+ var TEMPLATES = new LuigiTemplate.Cache({
+ user: [
+ "<a ",
+ "href='#' ",
+ "class='list-group-item %{css|h}' ",
+ "title='Edit user \"%{user_name|h}\".' ",
+ "data-row='%{row|json|h}' ",
+ "data-q='%{q|h}' ",
+ ">",
+ "<i class='fa fa-fw fa-spinner fa-spin hidden loading'></i>",
+ "<i class='fa fa-fw fa-user loading'></i>",
+ " ",
+ "%{user_name|h} (%{email|h})",
+
+ "<span class='badge pull-right'>",
+ "%{role_name|h}",
+ "</span>",
+ "</a>",
+ ],
+
+ loading: [
+ "<span class='list-group-item disabled'>",
+ "<i class='fa fa-spinner fa-spin'></i>",
+ " ",
+ "Loading...",
+ "</span>",
+ ],
+
+ error: [
+ "<span class='list-group-item list-group-item-danger disabled'>",
+ "<i class='fa fa-exclamation-triangle'></i>",
+ " ",
+ "Error: %{responseText|h}",
+ "</span>",
+ ],
+ });
+
+
+ var POST_TYPES = {
+ type: {
+ last: false,
+ name: "Type",
+ },
+
+ blog: {
+ last: true,
+ name: "Blog Post",
+
+ cbs: {
+ show: function() {
+ $('#post-new-blog-name').val('');
+ $('#post-new-blog-slug').val('');
+ $('#post-new-blog-body').val('');
+ },
+
+ shown: function() {
+ $('#post-new-blog-name').focus();
+ },
+ },
+ },
+
+ page: {
+ last: true,
+ name: "Page",
+ },
+
+ project: {
+ last: true,
+ name: "Project",
+ },
+ };
+
+ $('#post-new-dialog').on('show.bs.modal', function() {
+ $('#post-new-type-blog').click();
+
+ $('#post-new-tab-type').parent().removeClass('active')
+ $('#post-new-tab-type').click();
+ });
+
+ $.each(POST_TYPES, function(id, data) {
+ $('#post-new-tab-' + id).on('show.bs.tab', function() {
+ // update buttons
+ $('#post-new-back').toggleClass('disabled', !data.last);
+ $('#post-new-next').toggleClass('hidden', data.last);
+ $('#post-new-confirm').toggleClass('hidden', !data.last)
+ .find('span.name').text(data.name);
+ });
+
+ if (data.cbs) {
+ // add event handlers
+ $.each(data.cbs, function(ev_id, fn) {
+ $('#post-new-tab-' + id).on(ev_id + '.bs.tab', fn);
+ });
+ }
+ });
+
+ $('#post-new-back').click(function() {
+ $('#post-new-tab-type').click();
+
+ // stop event
+ return false;
+ });
+
+ $('#post-new-next').click(function() {
+ $.each(POST_TYPES, function(id, data) {
+ if ($('#post-new-type-' + id).is(':checked')) {
+ // select tab
+ $('#post-new-tab-' + id).click();
+
+ return false;
+ }
+ });
+
+ // stop event
+ return false;
+ });
+
+ $('#post-new-confirm').click(function() {
+ if (me.hasClass('disabled'))
+ return false;
+
+ // TODO: see #user-add-confirm
+ alert('TODO: create');
+
+ // stop event
+ return false;
+ });
+
+ $('#post-new-tab-pane-type label').dblclick(function() {
+ $(this).find('input[type="radio"]').prop('checked', true);
+ $('#post-new-next').click();
+
+ // stop event
+ return false;
+ });
+
+ $('#post-new-tab-blog').one('shown.bs.tab', function() {
+ // lazy-init editor
+ console.log('initializing editor');
+/*
+ * tinymce.init({
+ * selector: '#post-new-blog-body',
+ * plugins: 'fullscreen',
+ * });
+ */
+ CKEDITOR.replace('post-new-blog-body');
+ });
+});