diff --git a/modules/groups/groups_feeds/groups_feeds.module b/modules/groups/groups_feeds/groups_feeds.module
index 00e78bb..512e9fa 100644
--- a/modules/groups/groups_feeds/groups_feeds.module
+++ b/modules/groups/groups_feeds/groups_feeds.module
@@ -15,9 +15,96 @@ function groups_feeds_menu() {
'access callback' => TRUE,
'file' => 'groups_feeds.groups_json.inc',
);
+ $items['node/%node/sync'] = array(
+ 'title' => 'Sync Settings',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('groups_feeds_sync_settings', 1),
+ 'access callback' => 'groups_feeds_sync_access',
+ 'access arguments' => array(1),
+ 'type' => MENU_LOCAL_TASK,
+ );
return $items;
}
+function groups_feeds_sync_access($group_node) {
+ global $user;
+ if ((empty($group_node)) || ($group_node->type != 'group')) {
+ return FALSE;
+ }
+ // allow modify sync settings for group administrator
+ if (og_user_access('node', $group_node->nid, 'administer group')) {
+ return TRUE;
+ }
+ // allow override sync settings for amabassadors and community manageres
+ if ((in_array("ambassador", $user->roles)) || (in_array("community_manager", $user->roles))) {
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/**
+ * Sync settings form callback.
+ */
+function groups_feeds_sync_settings($formid, $form_state, $group_node) {
+ $nid = $group_node->nid;
+ $meetup_url = NULL;
+ foreach ($group_node->field_resource_links[LANGUAGE_NONE] as $resource) {
+ if ($resource['key'] == '5') {
+ $meetup_url = $resource['value'];
+ }
+ }
+ $form['nid'] = array('#type' => 'value', '#value' => $nid);
+ $form['description'] = array(
+ '#markup' => '
' . t('Synchronization settings for group data. '). '
',
+ );
+ $url = 'https://github.com/openstack-infra/groups-static-pages';
+ $form['sync_groups'] = array(
+ '#type' => 'checkbox',
+ '#prefix' =>
+ ''.t('OpenStack static pages repository').'
'.
+ ''.l($url, $url).'
',
+ '#title' => 'Import group data from groups.json',
+ '#default_value' => variable_get('groups_sync_group_'.$nid, TRUE),
+ );
+ if (!empty($meetup_url)) {
+ // show meetup sync only for groups with meetup link
+ $form['sync_events'] = array(
+ '#type' => 'checkbox',
+ '#prefix' => ''.t('Meetup.com synchronization').'
'.
+ ''.l($meetup_url, $meetup_url).'
',
+ '#title' => 'Import event calendar from meetup.com',
+ '#default_value' => variable_get('groups_sync_event_'.$nid, TRUE),
+ );
+ $form['sync_meetup'] = array(
+ '#type' => 'checkbox',
+ '#title' => 'Import group stats from meetup.com',
+ '#default_value' => variable_get('groups_sync_meetup_'.$nid, TRUE),
+ );
+ }
+ $form['actions']['#type'] = 'actions';
+ $form['actions']['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Save configuration'),
+ );
+ return $form;
+}
+
+/**
+ * Implements hook_form_submit().
+ */
+function groups_feeds_sync_settings_submit($form, &$form_state) {
+ $nid = $form_state['values']['nid'];
+ if (!empty($nid)) {
+ variable_set('groups_sync_event_'.$nid, $form_state['values']['sync_events']);
+ if (isset($form_state['values']['sync_groups'])) {
+ variable_set('groups_sync_group_'.$nid, $form_state['values']['sync_groups']);
+ }
+ if (isset($form_state['values']['sync_meetup'])) {
+ variable_set('groups_sync_meetup_'.$nid, $form_state['values']['sync_meetup']);
+ }
+ }
+}
+
/**
* Implements hook_feeds_plugins().
*/
diff --git a/themes/openstack_bootstrap/custom-sass/partials/_group.scss b/themes/openstack_bootstrap/custom-sass/partials/_group.scss
index ce31457..f8e9b1a 100644
--- a/themes/openstack_bootstrap/custom-sass/partials/_group.scss
+++ b/themes/openstack_bootstrap/custom-sass/partials/_group.scss
@@ -171,3 +171,21 @@
margin-right: 4px;
}
}
+
+/* sync settings page */
+
+#groups-feeds-sync-settings {
+ h3 {
+ color: #000;
+ font-size: 14px;
+ font-weight: 600;
+ }
+ a {
+ color: #ffffff;
+ text-decoration: none;
+ font-size: 12px;
+ }
+ a:hover {
+ text-decoration: underline;
+ }
+}
\ No newline at end of file