forked from Botanical/BotanJS
Generalize tags to flags
This commit is contained in:
@@ -20,11 +20,11 @@
|
||||
/** @type {Astro.Blog.Components.Bubble} */
|
||||
var Bubble = __import( "Astro.Blog.Components.Bubble" );
|
||||
|
||||
var opostData = __import( "System.Net.postData" );
|
||||
var opostData = __import( "System.Net.postData" );
|
||||
var prettyDate = __import( "Astro.utils.Date.pretty" );
|
||||
|
||||
var Visualizer = ns[ NS_INVOKE ]( "Visualizer" );
|
||||
var Tag = ns[ NS_INVOKE ]( "Tag" );
|
||||
var Flag = ns[ NS_INVOKE ]( "Flag" );
|
||||
|
||||
|
||||
// Editor Override
|
||||
@@ -34,7 +34,43 @@
|
||||
opostData( processor, data, success, failed );
|
||||
};
|
||||
|
||||
var Article = function( processorSet )
|
||||
// Wrappers for every plugins
|
||||
var PluginBundles = function( article, plugins )
|
||||
{
|
||||
this.plugins = plugins;
|
||||
for( var i in this.plugins )
|
||||
{
|
||||
/* @type {Astro.Blog.AstroEdit.IPlugins} */
|
||||
var g = this.plugins[i];
|
||||
g.bindArticle = article;
|
||||
}
|
||||
};
|
||||
|
||||
PluginBundles.prototype.setForView = function( pluginId, data )
|
||||
{
|
||||
for( var i in this.plugins )
|
||||
{
|
||||
var p = this.plugins[i];
|
||||
if( p.id == pluginId )
|
||||
{
|
||||
p.setForView( data );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
PluginBundles.prototype.getSetData = function( pluginId, data )
|
||||
{
|
||||
for( var i in this.plugins )
|
||||
{
|
||||
var p = this.plugins[i];
|
||||
if( p.id == pluginId )
|
||||
{
|
||||
p.getSetData( data );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var Article = function( processorSet, plugins )
|
||||
{
|
||||
var pBubble = new Bubble();
|
||||
|
||||
@@ -44,7 +80,6 @@
|
||||
var _content = "";
|
||||
|
||||
//// Classes & obj
|
||||
var _ae_tag = null;
|
||||
var _visualizer = null;
|
||||
var timestamp = new Date();
|
||||
|
||||
@@ -58,6 +93,7 @@
|
||||
, date_created: timestamp
|
||||
, archived: false
|
||||
, tags: null
|
||||
, section: null
|
||||
, draft: true
|
||||
, article_id: false
|
||||
};
|
||||
@@ -78,7 +114,7 @@
|
||||
var a_conf = Config.get( "AstroEdit" );
|
||||
var base_path = Config.get( "BasePath" );
|
||||
|
||||
///// preview fields
|
||||
/*{{{ preview fields */
|
||||
var ae_p_fields = {
|
||||
mtime: set_field_name( Dand.wrap( "input" ), "date_modified" )
|
||||
, ptime: set_field_name( Dand.wrap( "input" ), "date_published" )
|
||||
@@ -94,8 +130,42 @@
|
||||
var temp;
|
||||
|
||||
for ( var i in ae_p_fields ) ae_preview.appendChild( ae_p_fields[i] );
|
||||
//// End preview fields
|
||||
/* End preview fields }}}*/
|
||||
|
||||
/*{{{ Button sections */
|
||||
var ae_stitles = Dand.glass( "ae_stitle", true );
|
||||
var ae_panel_section = Dand.glass( "ae_panel_section", true );
|
||||
|
||||
var l = ae_stitles.length;
|
||||
for( var i = 0; i < l; i ++ )
|
||||
{
|
||||
var t = ae_stitles[i];
|
||||
var p = ae_panel_section[i];
|
||||
t.addEventListener( "Click", function( e )
|
||||
{
|
||||
var p = this.p;
|
||||
if( this.t.expanded = !this.t.expanded )
|
||||
{
|
||||
p.style.height = "auto";
|
||||
Cycle.next(
|
||||
function(){
|
||||
p.style.height = this.h + "px";
|
||||
}.bind({ h: p.element.clientHeight })
|
||||
);
|
||||
p.style.height = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
p.style.height = 0;
|
||||
}
|
||||
}.bind({ t: t, p: p }) );
|
||||
}
|
||||
|
||||
ae_stitles[0].element.click();
|
||||
/* End Button sections }}}*/
|
||||
|
||||
// Install plugins
|
||||
plugins = new PluginBundles( this, plugins );
|
||||
|
||||
var enableSaveFunction = function ()
|
||||
{
|
||||
@@ -253,8 +323,8 @@
|
||||
ae_publish.innerHTML = ArticleModel.draft ? "Publish" : "Done edit";
|
||||
ae_backup.innerHTML = ( ArticleModel.draft ? "Save" : "Backup" ) + "(Ctrl + s)";
|
||||
|
||||
|
||||
_ae_tag && _ae_tag.setTags( ArticleModel.tags );
|
||||
plugins.setForView( "tags", ArticleModel.tags );
|
||||
plugins.setForView( "section", ArticleModel.section );
|
||||
}
|
||||
|
||||
, deleteDraft = function ( confirmed )
|
||||
@@ -311,10 +381,12 @@
|
||||
article_id: __article_id ? __article_id : ""
|
||||
, title: _title
|
||||
, content: _content
|
||||
, tags: _ae_tag.getTags()
|
||||
, draft: 1
|
||||
};
|
||||
|
||||
plugins.getSetData( "tags", _data );
|
||||
plugins.getSetData( "section", _data );
|
||||
|
||||
postData( processorSet, _data, saveSuccess, serverFailed );
|
||||
}
|
||||
};
|
||||
@@ -345,7 +417,7 @@
|
||||
? ArticleModel.date_published
|
||||
: Math.floor( 0.001*( new Date().getTime() ) )
|
||||
;
|
||||
ae_p_fields.tags.value = _ae_tag.getTags();
|
||||
ae_p_fields.tags.value = _ae_tag.getFlags();
|
||||
|
||||
ae_preview.submit();
|
||||
};
|
||||
@@ -358,10 +430,10 @@
|
||||
_visualizer = _class;
|
||||
_visualizer.setContentDiv( ae_content );
|
||||
}
|
||||
if ( _class instanceof Tag )
|
||||
if ( _class instanceof Flag )
|
||||
{
|
||||
_ae_tag = _class;
|
||||
ArticleModel && ArticleModel.tags && ( _ae_tag ).setTags( ArticleModel.tags );
|
||||
ArticleModel && ArticleModel.tags && ( _ae_tag ).setFlags( ArticleModel.tags );
|
||||
}
|
||||
};
|
||||
|
||||
@@ -389,7 +461,7 @@
|
||||
|
||||
_data.title = _title;
|
||||
_data.content = _content;
|
||||
_data.tags = _ae_tag.getTags();
|
||||
_data.tags = _ae_tag.getFlags();
|
||||
|
||||
postData( processorSet, _data, publishSuccess.bind({ contentUpdate: true }), serverFailed );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user