Break client side plugin API to combat limitations that make it hard to impossible to get the DOM element

This commit is contained in:
Bernhard Posselt 2015-01-25 18:22:19 +01:00
Родитель 4b0ec60043
Коммит 1ddbdffdb9
5 изменённых файлов: 22 добавлений и 19 удалений

Просмотреть файл

@ -1,4 +1,5 @@
owncloud-news (5.0.2) owncloud-news (5.1.0)
* **Backwards incompatible change**: Break client side plugin API to combat limitations that make it hard to impossible to get the DOM element
* **Enhancement**: Expose feed ordering parameter in API * **Enhancement**: Expose feed ordering parameter in API
owncloud-news (5.0.1) owncloud-news (5.0.1)

Просмотреть файл

@ -2491,12 +2491,14 @@ app.directive('newsArticleActions', function () {
'article': '=' 'article': '='
}, },
replace: true, replace: true,
link: function (scope) { link: function (scope, elem) {
scope.plugins = News.getArticleActionPlugins(); var plugins = News.getArticleActionPlugins();
scope.pluginClick = function (pluginId, event, article) { scope.plugins = [];
News.getArticleActionPluginById(pluginId)
.onClick(event, article); for (var i=0; i<plugins.length; i+=1) {
}; var plugin = new plugins[i](elem, scope.article);
scope.plugins.push(plugin);
}
} }
}; };
}); });

2
js/build/app.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -16,12 +16,14 @@ app.directive('newsArticleActions', function () {
'article': '=' 'article': '='
}, },
replace: true, replace: true,
link: function (scope) { link: function (scope, elem) {
scope.plugins = News.getArticleActionPlugins(); var plugins = News.getArticleActionPlugins();
scope.pluginClick = function (pluginId, event, article) { scope.plugins = [];
News.getArticleActionPluginById(pluginId)
.onClick(event, article); for (var i=0; i<plugins.length; i+=1) {
}; var plugin = new plugins[i](elem, scope.article);
scope.plugins.push(plugin);
}
} }
}; };
}); });

Просмотреть файл

@ -1,8 +1,6 @@
<ul class="article-action-plugins"> <ul class="article-action-plugins" news-stop-propagation>
<li ng-repeat="plugin in ::plugins" class="util" <li ng-repeat="plugin in ::plugins"
id="article-plugin-{{ plugin.id }}" class="util article-plugin-{{ plugin.id }}">
ng-click="pluginClick(plugin.id, $event, article)"
news-stop-propagation>
<button title="{{ plugin.title }}"></button> <button title="{{ plugin.title }}"></button>
</li> </li>
</ul> </ul>