Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4022)

Unified Diff: chrome/browser/resources/md_policy/policy_ui.js

Issue 1371073003: Display material design policies grouped by tags. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed readonly to private properties. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/md_policy/policy_ui.js
diff --git a/chrome/browser/resources/md_policy/policy_ui.js b/chrome/browser/resources/md_policy/policy_ui.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ac884a0ca58396a6e0c0f2b10ef7e3535f741b9
--- /dev/null
+++ b/chrome/browser/resources/md_policy/policy_ui.js
@@ -0,0 +1,104 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * Define a global entry point that will be set when the page is initialized.
+ * @return {?PolicyUi}
+ */
+cr.define('policy', function() {
+ return {Page: null};
+});
+
+/**
+ * @fileoverview
+ * 'policy-ui' is the main MD element, combining the UI and models.
+ *
+ * Example:
+ * <policy-ui></policy-ui>
+ *
+ * @group Chrome Policy Elements
+ * @element policy-ui
+ */
+PolicyUi = Polymer({
+ is: 'policy-ui',
+
+ properties: {
+ /**
+ * Object containing title and text of the introduction card.
+ * @type {!{title: string, text: string}}
+ */
+ introduction: {
+ type: Object,
+ // TODO(fhorschig): i18n! Replace sample text with reviewed message.
+ value: {
+ title: 'Managed account policies',
+ text: 'Your device and your user account are managed which means ' +
+ 'that some of your settings are fixed by your administrator.\n' +
+ 'The cards below explain how the administrator\'s choices may ' +
+ 'impact your privacy or security.'
+ },
+ readOnly: true,
+ },
+
+ /**
+ * Array containing all known tags.
+ * @type {!Array<Object<string>>}
+ * @private
+ */
+ tags_: {
+ type: Array,
+ value: function() { return []; }
Dan Beam 2015/10/14 21:44:00 does this need an initial value?
fhorschig 2015/10/15 17:38:29 No. Deleted.
+ }
+ },
+
+ /** @override */
+ ready: function() {
+ // Set this element as receiver of calls to the Page.
+ policy.Page = this;
+
+ // Notify the browser that the page has loaded, causing it to send the
+ // list of all known policies, the current policy values and the cloud
+ // policy status.
+ chrome.send('initialized');
+ },
+
+ /**
+ * Receives a list of known tags and creates an empty policy list for each.
+ * @param {!Array<string>} tags List of tags.
+ */
+ setPolicyGroups: function(tags) {
+ this.set('tags_', tags.map(function(tag) {
Dan Beam 2015/10/14 21:44:00 can we get away without this .map()?
fhorschig 2015/10/15 17:38:29 Yes, we can. Done.
+ return {name: tag};
+ }));
+ },
+
+ /**
+ * Creates UI elements for tagged policies within the passed |names| object.
+ * @param {!{chromePolicyNames: !Object<!Array<string>>}} namesWithTags
+ */
+ setPolicyNames: function(namesWithTags) {
+ for (var name in namesWithTags.chromePolicyNames) {
+ namesWithTags.chromePolicyNames[name].forEach((function(tag) {
+ this.$.groups.querySelector('[risk-tag="' + tag + '"]').addPolicy(name);
+ }).bind(this));
+ }
+ },
+
+ /**
+ * Receives a list of current values that it hands down to children.
+ * @param {!{chromePolicies: !Object<string>}} values Current policies.
+ */
+ setPolicyValues: function(values) {
+ // TODO(fhorschig): Update or notify tag groups.
+ },
+
+ /**
+ * Receives an object with meta data about the currently set policies.
+ * @param {!Object} status Dictionary containing meta data about set policies.
+ */
+ setStatus: function(status) {
+ // TODO(fhorschig): Update |this.$.introduction| with status information.
+ // text according to policy status.
+ }
+});

Powered by Google App Engine
This is Rietveld 408576698